object LegendEditor is components: FillEditor* or GradientEditor* or IconEditor*; description: (* These are the three different ways to represent data. *); end LegendEditor; object FillEditor is components: LegendElements* and ColorSelection* and DefineColor* and Label and Preview; end FillEditor; object GradientEditor is components: LegendElements*, ColorSelection*, Shade*, Label, Preview; end GradientEditor; object IconEditor is components: LegendElements* and Icon and Label and Preview; end IconEditor; object ColorSelection is components: Black or Purple or Brown or Turquoise or Red or Yellow or Green or Blue; description: (* Each of the available colors consist of some amount of Red, Green and Blue. *); end ColorSelection; object LegendElements is components: Icon and Label; end LegendElements; operation DefineColor is inputs: Color; outputs: NewColor; description: (* The slider bars for Red, Green and Blue are used to create a new color. *); end DefineColor; obj Color is Red or Green or Blue; object Preview is components: Icon and Label; description: (* The box shows the currently created Legend Element before added to the Legend Element list. *); end Preview; object NewColor is integer components: Red and Green and Blue; description: (* New color consisting of an amount of Red, Green and Blue. *); end NewColor; object Opacity is integer;