## com.bbn.openmap.proj
Class BasicProjectionLoader

    java.lang.Object
      com.bbn.openmap.MapHandlerChild
          com.bbn.openmap.OMComponent
              com.bbn.openmap.proj.BasicProjectionLoader

All Implemented Interfaces:
  java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, java.util.EventListener, LightMapHandlerChild, ProjectionLoader, PropertyConsumer

Direct Known Subclasses:
  CADRGLoader, GnomonicLoader, LambertConformalLoader, LLXYLoader, MercatorLoader, OrthographicLoader, UTMProjectionLoader

public abstract class BasicProjectionLoader
extends OMComponent
implements ProjectionLoader

The BasicProjectionLoader is a base implementation of the ProjectionLoader interface that conveniently handles the PropertyConsumer methods for the ProjectionLoader. There are two basic properties built into this base class that can be modified in a properties file. You can add ProjectionLoaders to the MapHandler, and if the ProjectionFactory singleton instance has been added to it as well, it will be picked up and the projection made available to the application. For example, the BasicProjectionFactory allows you to set thse properties for the Mercator projection:

       projLoader.class=com.bbn.openmap.proj.MercatorLoader
       projLoader.prettyName=Mercator
       projLoader.description=Mercator Projection.

The prettyName and description properties should have defaults, but internationalized strings can be substituted as needed.

Field Summary
`protected java.lang.String` `description`
`static java.lang.String` `DescriptionProperty`
`protected java.lang.String` `prettyName`
`static java.lang.String` `PrettyNameProperty`
`protected java.lang.Class` `projClass`

Fields inherited from class com.bbn.openmap.OMComponent
`i18n, propertyPrefix`

Fields inherited from class com.bbn.openmap.MapHandlerChild
`beanContextChildSupport`

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

Constructor Summary
`BasicProjectionLoader(java.lang.Class pClass, java.lang.String pName, java.lang.String pDescription)` Set the basic parameters needed for a ProjectionLoader.

Method Summary
`abstract Projection` `create(java.util.Properties props)` Create the projection with the given parameters.
`java.lang.String` `getDescription()` Get a description for the projection.
`java.lang.String` `getPrettyName()` Get a pretty name for the projection.
`java.lang.Class` `getProjectionClass()` Get a class name to use for the projection.
`java.util.Properties` `getProperties(java.util.Properties props)` PropertyConsumer method, to fill in a Properties object, reflecting the current values of the OMComponent.
`java.util.Properties` `getPropertyInfo(java.util.Properties props)` Method to fill in a Properties object with values reflecting the properties able to be set on this PropertyConsumer.
`void` `setDescription(java.lang.String desc)` Set a description for the projection.
`void` `setPrettyName(java.lang.String pn)` Set a pretty name for the projection.
`void` `setProperties(java.lang.String prefix, java.util.Properties props)` Sets the properties for the OMComponent.

Methods inherited from class com.bbn.openmap.OMComponent
`getPropertyPrefix, setProperties, setPropertyPrefix`

Methods inherited from class com.bbn.openmap.MapHandlerChild
`addPropertyChangeListener, addVetoableChangeListener, childrenAdded, childrenRemoved, findAndInit, findAndInit, findAndUndo, firePropertyChange, fireVetoableChange, getBeanContext, removePropertyChangeListener, removeVetoableChangeListener, setBeanContext`

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

Field Detail

### projClass

    protected java.lang.Class projClass

### prettyName

    protected java.lang.String prettyName

### description

    protected java.lang.String description

### PrettyNameProperty

    public static final java.lang.String PrettyNameProperty

See Also:
  Constant Field Values

### DescriptionProperty

    public static final java.lang.String DescriptionProperty

See Also:
  Constant Field Values

Constructor Detail

### BasicProjectionLoader

    public BasicProjectionLoader(java.lang.Class pClass,
                                 java.lang.String pName,
                                 java.lang.String pDescription)

  Set the basic parameters needed for a ProjectionLoader.

Method Detail

### getProjectionClass

    public java.lang.Class getProjectionClass()

  Get a class name to use for the projection. This will be used as a key in the projection factory.

  Specified by:
    `getProjectionClass` in interface `ProjectionLoader`

### getPrettyName

    public java.lang.String getPrettyName()

  Get a pretty name for the projection.

  Specified by:
    `getPrettyName` in interface `ProjectionLoader`

### setPrettyName

    public void setPrettyName(java.lang.String pn)

  Set a pretty name for the projection.

### getDescription

    public java.lang.String getDescription()

  Get a description for the projection.

  Specified by:
    `getDescription` in interface `ProjectionLoader`

### setDescription

    public void setDescription(java.lang.String desc)

  Set a description for the projection.

### create

    public abstract Projection create(java.util.Properties props)
                               throws ProjectionException

  Create the projection with the given parameters.

  Specified by:
    `create` in interface `ProjectionLoader`
  Throws:
    `exception` - if a parameter is missing or invalid.
    `ProjectionException`

### setProperties

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

  Description copied from class: `OMComponent`
  Sets the properties for the OMComponent.

  Specified by:
    `setProperties` in interface `PropertyConsumer`
  Overrides:
    `setProperties` in class `OMComponent`
  Parameters:
    `prefix` - the token to prefix the property names
    `props` - the `Properties` object

### getProperties

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

  Description copied from class: `OMComponent`
  PropertyConsumer method, to fill in a Properties object, reflecting the current values of the OMComponent. If the component has a propertyPrefix set, the property keys should have that prefix plus a separating '.' prepended to each propery key it uses for configuration.

  Specified by:
    `getProperties` in interface `PropertyConsumer`
  Overrides:
    `getProperties` in class `OMComponent`
  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 props)

  Description copied from class: `OMComponent`
  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.). For Layer, this method should at least return the 'prettyName' property.

  Specified by:
    `getPropertyInfo` in interface `PropertyConsumer`
  Overrides:
    `getPropertyInfo` in class `OMComponent`
  Parameters:
    `props` - 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.

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