com.bbn.openmap.layer.vpf
Class VPFFeatureLayer

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by com.bbn.openmap.Layer
                  extended by com.bbn.openmap.layer.OMGraphicHandlerLayer
                      extended by com.bbn.openmap.layer.vpf.VPFFeatureLayer
All Implemented Interfaces:
ProjectionListener, GestureResponsePolicy, OMGraphicHandler, ProjectionPainter, PropertyConsumer, java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, java.io.Serializable, java.util.EventListener

public class VPFFeatureLayer
extends OMGraphicHandlerLayer
implements ProjectionListener, java.awt.event.ActionListener, java.io.Serializable

The VPFFeaureLayer renders VPF data with features being rendered in the order and style specified by the GeoSym specification. It uses the VPFAutoFeatureWarehouse, which knows how to use GeoSym data files to manage desired features. These data files can be modified to adjust which features are displayed. The properties for this layer are:

 vpfPath=path to vpf library directory, parent of DHT/LAT file.  Multiple paths can be specified, separated by ;
 libraryName=name of library to use, since multiple libraries can be specified in a top level vpf directory.  Wildcards accepted.
 
 # VFPAutoFeatureGraphicWarehouse options:
 cgmDirectory=parent directory of cgm files used for symbology
 faccLookupFile=path to csv file that ties FACC codes to symbol file names
 # The priority file is the file to adjust to customize display...
 priorityFile=path to csv file specifying which FACC codes, types should be rendered and in what order.
 featureInfoHandler=class of object to handle attributes
 

Author:
dietrick
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  int cutoffScale
           
static java.lang.String cutoffScaleProperty
          Property for setting VPF cutoff scale
protected  java.lang.String[] dataPaths
          the path to the root VPF directory
protected  java.lang.String libraryName
          the library name to focus on
static java.lang.String LibraryNameProperty
          Property for setting VPF library name to use
static java.util.logging.Logger logger
           
protected  LibrarySelectionTable lst
          the object that knows all the nitty-gritty vpf stuff
static java.lang.String pathProperty
          property extension used to set the VPF root directory
protected  java.lang.String prefix
          hang onto prefix used to initialize warehouse in setProperties()
protected  java.util.Properties props
          hang onto properties file used to initialize warehouse
protected  VPFAutoFeatureGraphicWarehouse warehouse
          our own little graphics factory
 
Fields inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer
consumeEvents, ConsumeEventsProperty, filter, interruptable, InterruptableProperty, layerWorker, LAYERWORKER_LOCK, layerWorkerQueue, mouseEventInterpreter, mouseModeIDs, MouseModesProperty, projectionChangePolicy, ProjectionChangePolicyProperty, renderPolicy, RenderPolicyProperty, selectedList, TransparencyProperty
 
Fields inherited from class com.bbn.openmap.Layer
addAsBackground, AddAsBackgroundProperty, addToBeanContext, AddToBeanContextProperty, attributes, autoPalette, AutoPaletteProperty, beanContextChildSupport, coordTransform, DataPathPrefixProperty, DisplayPaletteCmd, DisplayPropertiesCmd, doHack, HidePaletteCmd, i18n, localHackList, maxScale, MaxScaleProperty, minScale, MinScaleProperty, palette, paletteListener, PrettyNameProperty, propertyPrefix, readyToPaint, RedrawCmd, removable, RemovableProperty, SWING_PACKAGE, TransformProperty, windowSupport
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface com.bbn.openmap.PropertyConsumer
EditorProperty, initPropertiesProperty, LabelEditorProperty, ScopedEditorProperty
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
VPFFeatureLayer()
          Construct a VPF layer.
VPFFeatureLayer(java.lang.String name)
          Construct a VPFLayer, and sets its name.
 
Method Summary
 void checkWarehouse(boolean sbf)
          If the warehouse gets set as a result of this method being called, the properties will beed to be reset on it.
 java.util.Properties getDefaultProperties()
          Return our default properties for vpf land.
 java.lang.String getInfoText(OMGraphic omg)
          If applicable, should return a short, informational string about the OMGraphic to be displayed in the InformationDelegator.
 java.lang.String[] getPath()
          Returns the list of paths we use to look for data.
 java.util.Properties getProperties(java.util.Properties props)
          Overrides Layer getProperties method., also calls that method on Layer.
 java.lang.String getToolTipTextFor(OMGraphic omg)
          If applicable, should return a tool tip for the OMGraphic.
 VPFAutoFeatureGraphicWarehouse getWarehouse()
           
 void highlight(OMGraphic omg)
          Fleeting change of appearance for mouse movements over an OMGraphic.
protected  void initLST()
          initialize the library selection table.
 boolean isHighlightable(OMGraphic omg)
          Query asking if OMGraphic is highlight-able, which means that something in the GUI should change when the mouse is moved or dragged over the given OMGraphic.
 OMGraphicList prepare()
          Create the OMGraphicList to use on the map.
 void setPath(java.lang.String newPath)
          Set the data path to a single place.
 void setPath(java.lang.String[] newPaths)
          Set the data path to multiple places.
 void setProperties(java.lang.String prefix, java.util.Properties props)
          Another way to set the parameters of the VPFLayer.
 void unhighlight(OMGraphic omg)
          Notification to set OMGraphic to normal appearance.
 
Methods inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer
actionPerformed, canSetList, copy, createLayerWorker, cut, deselect, dispose, doAction, doPrepare, filter, filter, filter, getConsumeEvents, getDefaultSettingsPanel, getFilter, getItemsForMapMenu, getItemsForOMGraphicMenu, getLayerWorker, getList, getMapMouseListener, getMouseEventInterpreter, getMouseModeIDsForEvents, getProjectionChangePolicy, getPropertyInfo, getRedrawButton, getRenderPolicy, getSelected, getSettingsButton, getTransparency, getTransparencyAdjustmentPanel, isCancelled, isInterruptable, isSelectable, isWorking, leftClick, mouseOver, paint, paste, projectionChanged, receivesMapEvents, renderDataForProjection, resetFiltering, select, setConsumeEvents, setFilter, setInterruptable, setLayerWorker, setList, setMouseEventInterpreter, setMouseModeIDsForEvents, setProjectionChangePolicy, setRenderPolicy, setTransparency, supportsSQL, workerComplete
 
Methods inherited from class com.bbn.openmap.Layer
addComponentListener, added, addInfoDisplayListener, addLayerStatusListener, addMouseListener, addVetoableChangeListener, childrenAdded, childrenRemoved, clearListeners, connectToBeanContext, createWindowSupport, disconnectFromBeanContext, finalize, findAndInit, findAndInit, findAndUndo, fireHideToolTip, firePaletteEvent, fireRequestBrowserContent, fireRequestBrowserContent, fireRequestCursor, fireRequestInfoLine, fireRequestInfoLine, fireRequestInfoLine, fireRequestMessage, fireRequestMessage, fireRequestToolTip, fireRequestToolTip, fireRequestURL, fireRequestURL, fireStatusUpdate, fireStatusUpdate, fireVetoableChange, getAddAsBackground, getAddToBeanContext, getAttribute, getBeanContext, getCoordTransform, getGUI, getIcon, getMaxScale, getMinScale, getPackage, getPalette, getProjection, getPropertyPrefix, getWindowSupport, hasGUI, hidePalette, isAutoPalette, isProjectionOK, isReadyToPaint, isRemovable, notifyHideHack, prependDataPathPrefix, putAttribute, removeComponentListener, removeConfirmed, removed, removeInfoDisplayListener, removeLayerStatusListener, removeVetoableChangeListener, repaint, resetPalette, setAddAsBackground, setAddToBeanContext, setAutoPalette, setBeanContext, setCoordTransform, setIcon, setLayerProperties, setMaxScale, setMinScale, setName, setPaletteVisible, setProjection, setProjection, setProperties, setPropertyPrefix, setReadyToPaint, setRemovable, setVisible, setWindowSupport, showPalette
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.bbn.openmap.event.ProjectionListener
projectionChanged
 
Methods inherited from interface java.awt.event.ActionListener
actionPerformed
 
Methods inherited from interface java.beans.beancontext.BeanContextChild
addPropertyChangeListener, removePropertyChangeListener
 

Field Detail

logger

public static java.util.logging.Logger logger

pathProperty

public static final java.lang.String pathProperty
property extension used to set the VPF root directory

See Also:
Constant Field Values

cutoffScaleProperty

public static final java.lang.String cutoffScaleProperty
Property for setting VPF cutoff scale

See Also:
Constant Field Values

LibraryNameProperty

public static final java.lang.String LibraryNameProperty
Property for setting VPF library name to use

See Also:
Constant Field Values

lst

protected transient LibrarySelectionTable lst
the object that knows all the nitty-gritty vpf stuff


warehouse

protected transient VPFAutoFeatureGraphicWarehouse warehouse
our own little graphics factory


prefix

protected java.lang.String prefix
hang onto prefix used to initialize warehouse in setProperties()


props

protected java.util.Properties props
hang onto properties file used to initialize warehouse


dataPaths

protected java.lang.String[] dataPaths
the path to the root VPF directory


cutoffScale

protected int cutoffScale

libraryName

protected java.lang.String libraryName
the library name to focus on

Constructor Detail

VPFFeatureLayer

public VPFFeatureLayer()
Construct a VPF layer.


VPFFeatureLayer

public VPFFeatureLayer(java.lang.String name)
Construct a VPFLayer, and sets its name.

Parameters:
name - the name of the layer.
Method Detail

setProperties

public void setProperties(java.lang.String prefix,
                          java.util.Properties props)
Another way to set the parameters of the VPFLayer.

Specified by:
setProperties in interface PropertyConsumer
Overrides:
setProperties in class OMGraphicHandlerLayer
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: OMGraphicHandlerLayer
Overrides Layer getProperties method., also calls that method on Layer. Sets the properties from the policy objects used by this OMGraphicHandler layer.

Specified by:
getProperties in interface PropertyConsumer
Overrides:
getProperties in class OMGraphicHandlerLayer
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.

getDefaultProperties

public java.util.Properties getDefaultProperties()
Return our default properties for vpf land.


setPath

public void setPath(java.lang.String newPath)
Set the data path to a single place.


setPath

public void setPath(java.lang.String[] newPaths)
Set the data path to multiple places.


getPath

public java.lang.String[] getPath()
Returns the list of paths we use to look for data.

Returns:
the list of paths. Don't modify the array!

initLST

protected void initLST()
initialize the library selection table.


getWarehouse

public VPFAutoFeatureGraphicWarehouse getWarehouse()

checkWarehouse

public void checkWarehouse(boolean sbf)
If the warehouse gets set as a result of this method being called, the properties will beed to be reset on it.

Parameters:
sbf - Search by features.

prepare

public OMGraphicList prepare()
Create the OMGraphicList to use on the map. OMGraphicHandler methods call this.

Overrides:
prepare in class OMGraphicHandlerLayer

getToolTipTextFor

public java.lang.String getToolTipTextFor(OMGraphic omg)
Description copied from class: OMGraphicHandlerLayer
If applicable, should return a tool tip for the OMGraphic. Return null if nothing should be shown.

Specified by:
getToolTipTextFor in interface GestureResponsePolicy
Overrides:
getToolTipTextFor in class OMGraphicHandlerLayer

getInfoText

public java.lang.String getInfoText(OMGraphic omg)
Description copied from class: OMGraphicHandlerLayer
If applicable, should return a short, informational string about the OMGraphic to be displayed in the InformationDelegator. Return null if nothing should be displayed.

Specified by:
getInfoText in interface GestureResponsePolicy
Overrides:
getInfoText in class OMGraphicHandlerLayer

isHighlightable

public boolean isHighlightable(OMGraphic omg)
Description copied from class: OMGraphicHandlerLayer
Query asking if OMGraphic is highlight-able, which means that something in the GUI should change when the mouse is moved or dragged over the given OMGraphic. Highlighting shows that something could happen, or provides cursory information about the OMGraphic. Responding true to this method may cause getInfoText() and getToolTipTextFor() methods to be called (depends on the MapMouseInterpetor).

Specified by:
isHighlightable in interface GestureResponsePolicy
Overrides:
isHighlightable in class OMGraphicHandlerLayer

highlight

public void highlight(OMGraphic omg)
Fleeting change of appearance for mouse movements over an OMGraphic.

Specified by:
highlight in interface GestureResponsePolicy
Overrides:
highlight in class OMGraphicHandlerLayer

unhighlight

public void unhighlight(OMGraphic omg)
Notification to set OMGraphic to normal appearance.

Specified by:
unhighlight in interface GestureResponsePolicy
Overrides:
unhighlight in class OMGraphicHandlerLayer


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