Class TLcyGenericMapManager<S extends ILcdView,T extends ILcdLayer>

java.lang.Object
com.luciad.lucy.map.TLcyGenericMapManager<S,T>
All Implemented Interfaces:
ILcdPropertyChangeSource
Direct Known Subclasses:
TLcyLspMapManager

public abstract class TLcyGenericMapManager<S extends ILcdView,T extends ILcdLayer> extends Object implements ILcdPropertyChangeSource

Manager of the ILcyGenericMapComponents that currently exist. A map manager offers functionality to:

  • retrieve all existing maps,
  • listen to the creation of new maps,
  • listen for the removal of existing maps,
  • retrieve the active map or
  • listen to changes in the active map.

Whenever a new ILcyGenericMapComponent is created, it needs to be added to the TLcyGenericMapManager. When a map is removed, it needs to be removed from the TLcyGenericMapManager. The responsibility to do this belongs to whoever created or disposed the map, for example the TLcyMapAddOn.

See Also:
  • Constructor Details

    • TLcyGenericMapManager

      protected TLcyGenericMapManager()
      The Default Constructor for TLcyGenericMapManager.
  • Method Details

    • addPropertyChangeListener

      public void addPropertyChangeListener(PropertyChangeListener aPropertyChangeListener)
      Description copied from interface: ILcdPropertyChangeSource

      Registers the given PropertyChangeListener to be notified when this object's properties change.

      In case you need to register a listener which keeps a reference to an object with a shorter life-time than this change source, you can use a ALcdWeakPropertyChangeListener instance as property change listener.

      Specified by:
      addPropertyChangeListener in interface ILcdPropertyChangeSource
      Parameters:
      aPropertyChangeListener - The listener to be notified
      See Also:
    • removePropertyChangeListener

      public void removePropertyChangeListener(PropertyChangeListener aPropertyChangeListener)
      Description copied from interface: ILcdPropertyChangeSource

      De-registers the given PropertyChangeListener from receiving property change events for this object.

      If the listener was added more than once, it will be notified one less time after being removed. If the listener is null, or was never added, no exception is thrown and no action is taken.

      Specified by:
      removePropertyChangeListener in interface ILcdPropertyChangeSource
      Parameters:
      aPropertyChangeListener - the listener that should no longer be notified of changes of this object's properties
      See Also:
    • firePropertyChange

      protected void firePropertyChange(String aPropertyName, Object aOldValue, Object aNewValue)
      Fires a property change event. This method must be invoked after a property has been changed.
      Parameters:
      aPropertyName - The property name. First letter is lower case, unless there are at least two capitals in the beginning. E.g. for setSelectedIndex, aPropertyName must be "selectedIndex". For setXYWorldReference, aPropertyName must be "XYWorldReference".
      aOldValue - The old value of the property.
      aNewValue - The new value of the property.
    • addMapManagerListener

      public void addMapManagerListener(ILcyGenericMapManagerListener<? super S,? super T> aMapManagerListener)
      Adds the given ILcyGeneralMapManagerListener to this TLcyGeneralMapManager.
      Parameters:
      aMapManagerListener - The listener to add.
      See Also:
    • addMapManagerListener

      public void addMapManagerListener(ILcyGenericMapManagerListener<? super S,? super T> aListener, boolean aFireEventForExistingMaps)

      Adds the given ILcyGeneralMapManagerListener to this TLcyGeneralMapManager.

      For every existing map a MAP_COMPONENT_ADDED event will be fired to aListener when aFireEventForExistingMaps is true. A use-case for this is when you want to use the listener to perform an action on any existing map and on all future maps.

      Parameters:
      aListener - The listener to be registered
      aFireEventForExistingMaps - true when aListener must be warned about all existing maps, false otherwise
      See Also:
    • removeMapManagerListener

      public void removeMapManagerListener(ILcyGenericMapManagerListener<? super S,? super T> aMapManagerListener)
      Removes the given ILcyGeneralMapManagerListener to this TLcyGeneralMapManager.
      Parameters:
      aMapManagerListener - The listener to remove.
    • getMapComponentCount

      public int getMapComponentCount()
      Returns the number of currently existing ILcyGenericMapComponents.
      Returns:
      the number of currently existing ILcyGenericMapComponents.
    • getMapComponent

      public ILcyGenericMapComponent<S,T> getMapComponent(int aIndex)
      Returns the ILcyGenericMapComponent at the given index.
      Parameters:
      aIndex - the index of the ILcyGenericMapComponent to return.
      Returns:
      the ILcyGenericMapComponent at the given index.
    • addMapComponent

      public void addMapComponent(ILcyGenericMapComponent<S,T> aMapComponent)

      Adds the given map to this TLcyGeneralMapManager. Whenever a new ILcyGenericMapComponent is instantiated, this method needs to be invoked. The responsibility to do this belongs to whoever created the map, for example the TLcyMapAddOn.

      Once an ILcyGenericMapComponent has been removed, it must not be re-added.

      Note: normally you do not need to call this method yourself. If you want to create new map components, consult the class javadoc of TLcyLspMapAddOn or TLcyMapAddOn for a snippet on how to achieve this.

      Parameters:
      aMapComponent - The ILcyGenericMapComponent to add.
    • removeMapComponent

      public void removeMapComponent(ILcyGenericMapComponent<S,T> aMapComponent)

      Removes the given map from this TLcyGeneralMapManager. Whenever a ILcyGenericMapComponent is removed, this method needs to be invoked. The responsibility to do this belongs to whoever disposed the map, for example the TLcyMapAddOn.

      Once an ILcyGenericMapComponent has been removed, it must not be re-added.

      Note: normally you do not need to call this method yourself. If you want to remove a map component from the UI, consult the class javadoc of TLcyLspMapAddOn or TLcyMapAddOn for a snippet on how to achieve this.

      Parameters:
      aMapComponent - The ILcyGenericMapComponent to remove.
    • fireMapManagerEvent

      protected void fireMapManagerEvent(TLcyGenericMapManagerEvent<S,T> aMapManagerEvent)
      Fires the given event to all associated listeners.
      Parameters:
      aMapManagerEvent - The event to fire.
    • getActiveMapComponent

      public ILcyGenericMapComponent<S,T> getActiveMapComponent()
      Returns null, or the active ILcyGenericMapComponent. The active map is the one that the user is working on, or has recently worked on. The active map component is typically null if there are no maps.
      Returns:
      null, or the active ILcyGenericMapComponent.
    • setActiveMapComponent

      public void setActiveMapComponent(ILcyGenericMapComponent<S,T> aActiveMapComponent)
      Sets the active map component. This property is typically set by the responsible for the maps, for example the TLcyMapAddOn, as the user starts working on a different map.

      Fires a property change event.

      Parameters:
      aActiveMapComponent - The active map component, or null.
    • containsMapComponent

      public boolean containsMapComponent(ILcyGenericMapComponent<? extends ILcdView,? extends ILcdLayer> aMapComponent)
      Returns true when the map component aMapComponent is registered to this map manager.
      Parameters:
      aMapComponent - The map component
      Returns:
      true when the map component aMapComponent us registered to this map manager, false in all other cases.