## com.bbn.openmap.layer.location
Class AbstractLocationHandler

    java.lang.Object
      com.bbn.openmap.layer.location.AbstractLocationHandler

All Implemented Interfaces:
  LocationHandler, PropertyConsumer

Direct Known Subclasses:
  CSVLocationHandler, DBLocationHandler

public abstract class AbstractLocationHandler
extends java.lang.Object
implements LocationHandler

The `AbstractLocationHandler` class facilitates the implementation of a `LocationHandler` by implementing a number of methods. By extending this class, a developer need only implement get(), setProperties(), and reloadData().

         locationhandler.locationColor=FF0000
         locationhandler.nameColor=008C54
         locationhandler.showNames=false
         locationhandler.showLocations=true
         locationhandler.override=true

Version:
  $Revision: 1.6.2.4 $ $Date: 2006/02/13 17:02:04 $
Author:
  Michael E. Los D530/23448
See Also:
  `LocationHandler`

Field Summary
`protected I18n` `i18n` All LocationHandlers have access to an I18n object, which is provided by the Environment.
`protected DrawingAttributes` `locationDrawingAttributes` The rendering attributes for the locations.
`protected DrawingAttributes` `nameDrawingAttributes` The rendering attributes for the names.
`protected java.lang.String` `propertyPrefix` Token uniquely identifying this LocationHandler in the application properties.
`protected LocationLayer` `zLayer` The parent layer.

Fields inherited from interface com.bbn.openmap.layer.location.LocationHandler
`defaultLocationColorString, defaultNameColorString, forceGlobalCommand, ForceGlobalProperty, LocationColorProperty, LocationPropertyPrefix, NameColorProperty, NamePropertyPrefix, readDataCommand, showdetails, showLocationsCommand, ShowLocationsProperty, showname, showNamesCommand, ShowNamesProperty`

Fields inherited from interface com.bbn.openmap.PropertyConsumer
`EditorProperty, initPropertiesProperty, LabelEditorProperty, ScopedEditorProperty`

Constructor Summary
`protected` `AbstractLocationHandler()`

Method Summary
`void` `fillLocationPopUpMenu(LocationPopupMenu lpm)` The location layer passes a LocationPopupMenu to the handler when on of its locations has been clicked on.
`java.awt.Component` `getGUI()` A set of controls to manipulate and control the display of data from the handler.
`LocationLayer` `getLayer()` Get the layer the handler is serving.
`java.awt.Color` `getLocationColor()` Get the color used for the location graphic.
`DrawingAttributes` `getLocationDrawingAttributes()`
`java.awt.Color` `getNameColor()` Get the color used for the name label.
`DrawingAttributes` `getNameDrawingAttributes()`
`java.util.Properties` `getProperties(java.util.Properties props)` PropertyConsumer method, to fill in a Properties object, reflecting the current values of the layer.
`java.util.Properties` `getPropertyInfo(java.util.Properties list)` Method to fill in a Properties object with values reflecting the properties able to be set on this PropertyConsumer.
`java.lang.String` `getPropertyPrefix()` Get the property key prefix that is being used to prepend to the property keys for Properties lookups.
`boolean` `isForceGlobal()` Find out whether global settings should override local ones.
`boolean` `isShowLocations()` See if the handler is displaying location graphics at a global level.
`boolean` `isShowNames()` See if the handler is displaying labels at a global level.
`void` `removed(java.awt.Container cont)` Called by the LocationLayer when the layer is removed from the map.
`void` `setForceGlobal(boolean set)` Set whether global settings should override local ones.
`void` `setLayer(LocationLayer l)` Set the layer the handler is responding to.
`void` `setLocationColor(java.awt.Color lColor)` Set the color used for the location graphic.
`void` `setLocationDrawingAttributes(DrawingAttributes lda)`
`void` `setNameColor(java.awt.Color nColor)` Set the color used for the name label.
`void` `setNameDrawingAttributes(DrawingAttributes nda)`
`void` `setProperties(java.util.Properties props)` Sets the properties for the handler.
`void` `setProperties(java.lang.String prefix, java.util.Properties properties)` Set up the properties of the handler.
`void` `setPropertyPrefix(java.lang.String prefix)` Set the property key prefix that should be used by the PropertyConsumer.
`void` `setShowLocations(boolean set)` Set the handler to show/hide location graphics at a global level.
`void` `setShowNames(boolean set)` Set the handler to show/hide labels at a global level.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface com.bbn.openmap.layer.location.LocationHandler
`get, reloadData`

Field Detail

### zLayer

    protected LocationLayer zLayer

  The parent layer.

### nameDrawingAttributes

    protected DrawingAttributes nameDrawingAttributes

  The rendering attributes for the names.

### locationDrawingAttributes

    protected DrawingAttributes locationDrawingAttributes

  The rendering attributes for the locations.

### propertyPrefix

    protected java.lang.String propertyPrefix

  Token uniquely identifying this LocationHandler in the application properties.

### i18n

    protected transient I18n i18n

  All LocationHandlers have access to an I18n object, which is provided by the Environment.

Constructor Detail

### AbstractLocationHandler

    protected AbstractLocationHandler()

Method Detail

### fillLocationPopUpMenu

    public void fillLocationPopUpMenu(LocationPopupMenu lpm)

  The location layer passes a LocationPopupMenu to the handler when on of its locations has been clicked on. This is an opportunity for the handler to add options to the menu that can bring up further information about the location, or to change the appearance of the location. This implementation makes no changes to the popup menu.

  Specified by:
    `fillLocationPopUpMenu` in interface `LocationHandler`
  Parameters:
    `lpm` - LocationPopupMenu to add buttons to.

### setLayer

    public void setLayer(LocationLayer l)

  Set the layer the handler is responding to. This is needed in case the handler has updates that it wants to show, and needs to trigger a repaint. It can also be used to communicate with the information delegator.

  Specified by:
    `setLayer` in interface `LocationHandler`
  Parameters:
    `l` - a LocationLayer

### getLayer

    public LocationLayer getLayer()

  Get the layer the handler is serving.

  Specified by:
    `getLayer` in interface `LocationHandler`

### isShowNames

    public boolean isShowNames()

  See if the handler is displaying labels at a global level.

  Specified by:
    `isShowNames` in interface `LocationHandler`

### setShowNames

    public void setShowNames(boolean set)

  Set the handler to show/hide labels at a global level.

  Specified by:
    `setShowNames` in interface `LocationHandler`

### isShowLocations

    public boolean isShowLocations()

  See if the handler is displaying location graphics at a global level.

  Specified by:
    `isShowLocations` in interface `LocationHandler`

### setShowLocations

    public void setShowLocations(boolean set)

  Set the handler to show/hide location graphics at a global level.

  Specified by:
    `setShowLocations` in interface `LocationHandler`

### isForceGlobal

    public boolean isForceGlobal()

  Find out whether global settings should override local ones.

  Specified by:
    `isForceGlobal` in interface `LocationHandler`

### setForceGlobal

    public void setForceGlobal(boolean set)

  Set whether global settings should override local ones.

  Specified by:
    `setForceGlobal` in interface `LocationHandler`

### setNameColor

    public void setNameColor(java.awt.Color nColor)

  Set the color used for the name label.

### getNameColor

    public java.awt.Color getNameColor()

  Get the color used for the name label.

### setLocationColor

    public void setLocationColor(java.awt.Color lColor)

  Set the color used for the location graphic.

### getLocationColor

    public java.awt.Color getLocationColor()

  Get the color used for the location graphic.

### getGUI

    public java.awt.Component getGUI()

  A set of controls to manipulate and control the display of data from the handler. This implementation returns a JPanel with a "No Palette" message.

  Specified by:
    `getGUI` in interface `LocationHandler`
  Returns:
    a JPanel with text, No Pallette

### removed

    public void removed(java.awt.Container cont)

  Called by the LocationLayer when the layer is removed from the map. The LocationHandler should release expensive resources if this is called.

  Specified by:
    `removed` in interface `LocationHandler`
  Parameters:
    `cont` - Container being removed from.

### setProperties

    public void setProperties(java.util.Properties props)

  Sets the properties for the handler. This particular method assumes that the marker name is not needed, because all of the contents of this Properties object are to be used for this object, and scoping the properties with a prefix is unnecessary.

  Specified by:
    `setProperties` in interface `PropertyConsumer`
  Parameters:
    `props` - the `Properties` object.

### setProperties

    public void setProperties(java.lang.String prefix,
                              java.util.Properties properties)

  Set up the properties of the handler. Part of the PropertyConsumer interface. Supported properties include:
  - locationColor - number of seconds between attempts to retrieve Features data
  - featuresSvcURL - URL to invoke to retrieve the XML Features document

  Specified by:
    `setProperties` in interface `PropertyConsumer`
  Parameters:
    `prefix` - a String used by the PropertyConsumer to prepend to each property value it wants to look up - setList.getProperty(prefix.propertyKey). If the prefix had already been set, then the prefix passed in should replace that previous value.
    `properties` - a Properties object that the PropertyConsumer can use to retrieve expected properties it can use for configuration.

### getProperties

    public java.util.Properties getProperties(java.util.Properties props)

  PropertyConsumer method, to fill in a Properties object, reflecting the current values of the layer. If the layer has a propertyPrefix set, the property keys should have that prefix plus a separating '.' prepended to each propery key it uses for configuration. This method takes care of the basic LocationHandler parameters, so any LocationHandlers that extend the AbstractLocationHandler should call this method, too, before adding any specific properties.

  Specified by:
    `getProperties` in interface `PropertyConsumer`
  Parameters:
    `props` - a Properties object to load the PropertyConsumer properties into. If props equals null, then a new Properties object should be created.
  Returns:
    Properties object containing PropertyConsumer property values. If getList was not null, this should equal getList. Otherwise, it should be the Properties object created by the PropertyConsumer.

### getPropertyInfo

    public java.util.Properties getPropertyInfo(java.util.Properties list)

  Method to fill in a Properties object with values reflecting the properties able to be set on this PropertyConsumer. The key for each property should be the raw property name (without a prefix) with a value that is a String that describes what the property key represents, along with any other information about the property that would be helpful (range, default value, etc.). This method takes care of the basic LocationHandler parameters, so any LocationHandlers that extend the AbstractLocationHandler should call this method, too, before adding any specific properties.

  Specified by:
    `getPropertyInfo` in interface `PropertyConsumer`
  Parameters:
    `list` - a Properties object to load the PropertyConsumer properties into. If getList equals null, then a new Properties object should be created.
  Returns:
    Properties object containing PropertyConsumer property values. If getList was not null, this should equal getList. Otherwise, it should be the Properties object created by the PropertyConsumer.

### setPropertyPrefix

    public void setPropertyPrefix(java.lang.String prefix)

  Set the property key prefix that should be used by the PropertyConsumer. The prefix, along with a '.', should be prepended to the property keys known by the PropertyConsumer.

  Specified by:
    `setPropertyPrefix` in interface `PropertyConsumer`
  Parameters:
    `prefix` - the prefix String.

### getPropertyPrefix

    public java.lang.String getPropertyPrefix()

  Get the property key prefix that is being used to prepend to the property keys for Properties lookups.

  Specified by:
    `getPropertyPrefix` in interface `PropertyConsumer`
  Returns:
    the property prefix

### getLocationDrawingAttributes

    public DrawingAttributes getLocationDrawingAttributes()

### setLocationDrawingAttributes

    public void setLocationDrawingAttributes(DrawingAttributes lda)

### getNameDrawingAttributes

    public DrawingAttributes getNameDrawingAttributes()

### setNameDrawingAttributes

    public void setNameDrawingAttributes(DrawingAttributes nda)

Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details