object LayerToolbar is components: EveryLayer*; operations: AddLayer, EditLayer; description: (* The layer toolbar is composed of each layer created and an operation which adds a new layer and an operation which edits an existing layer. *); end LayerToolbar; object EveryLayer is components: LayerName, IsItVisible, IsItActive, Order; description: (* An EveryLayer is an object which contains the name of the layer, whether or not it is visible on the map, whether or not it is the active layer, and in which order the layers appear on the toolbar. *); end EveryLayer; object LayerName is string; object IsItVisible is boolean; object IsItActive is boolean; object Order is integer; operation AddLayer is inputs: Name and TimeStamp and DataType and Legend and PenOpacity and FillOpacity and Elements* and Details; outputs: Layer; description: (* The AddLayer operation allows the user to add a new layer to the map after submitting all the inputs. *); end AddLayer; operation EditLayer is inputs: Layer and Name and TimeStamp and DataType and Legend and PenOpacity and FillOpacity and Elements* and Details; outputs: Layer; description: (* The EditLayer operation allows the user to edit an existing layer. *); end EditLayer; object Name is string; object TimeStamp is string; object DataType is string; object Legend is components: LegendElement*; end Legend; object LegendElement is components: Label; end LegendElement; object Label is string; object GradientObjectElement inherits from LegendElement components: Label and Color and Shade; end GradientObjectElement; object Color is components: Red and Green and Blue; end Color; object Red is integer; object Green is integer; object Blue is integer; object Shade is integer; object FillObjectElement inherits from LegendElement components: Label and Color; end FillObjectElement; object IconObjectElement inherits from LegendElement components: Label and Icon; end IconObjectElement; object Icon is Picture; object PenOpacity is integer; object FillOpacity is integer; object Details is string;