com.bbn.openmap.layer.dted
Class DTEDFrameCacheLayer

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.dted.DTEDFrameCacheLayer
All Implemented Interfaces:
DTEDConstants, 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 DTEDFrameCacheLayer
extends OMGraphicHandlerLayer
implements java.awt.event.ActionListener, java.io.Serializable, DTEDConstants

The DTEDFrameCacheLayer fills the screen with DTED data. To view the DTED iamges, the projection has to be set in an ARC projection, which OpenMap calls the CADRG or LLXY projection. In Gesture mode, clicking on the map will cause the DTEDFrameCacheLayer to place a point on the window and show the elevation of that point. The Gesture response is not dependent on the scale or projection of the screen.

The DTEDFrameCacheLayer uses the DTEDCacheHandler to get the images it needs. The DTEDFrameCacheLayer receives projection change events, and then asks the cache handler for the images it needs based on the new projection. The DTEDFrameCacheLayer also relies on properties to set its variables, such as the dted frame paths (there can be several at a time), the opaqueness of the frame images, number of colors to use, and some other display variables. The DTEDFrameCacheLayer properties look something like this:

NOTE: Make sure your DTED file and directory names are in lower case. You can use the com.bbn.openmap.layer.rpf.ChangeCase class to make modifications if necessary.

 
 
    #------------------------------
    # Properties for DTEDFrameCacheLayer
    #------------------------------
    
    # Level of DTED data to use 0, 1, 2
    dted.level=0
    
    # height (meters or feet) between color changes in band shading
    dted.band.height=25
    
    # Minumum scale to display images. Larger numbers mean smaller scale, 
    # and are more zoomed out.
    dted.min.scale=20000000
    
    # Delete the cache if the layer is removed from the map.
    dted.kill.cache=true
   
    # Need to set GeneratorLoaders for DTED rendering.  These properties get
    # forwarded on to the DTEDFrameCacheHandler.
    dted.generators=greys colors
    dted.greys.class=com.bbn.openmap.omGraphics.grid.SlopeGeneratorLoader
    dted.greys.prettyName=Slope Shading
    dted.greys.colorsClass=com.bbn.openmap.omGraphics.grid.GreyscaleSlopeColors
    dted.colors.class=com.bbn.openmap.omGraphics.grid.SlopeGeneratorLoader
    dted.colors.prettyName=Elevation Shading
    dted.colors.colorsClass=com.bbn.openmap.omGraphics.grid.ColoredShadingColors
   
    #-------------------------------------
    # End of properties for DTEDFrameCacheLayer
    #-------------------------------------
 
 
 

See Also:
ChangeCase, Serialized Form

Nested Class Summary
static class DTEDFrameCacheLayer.Builder
          This is the easiest way to construct a DTEDFrameCacheLayer programmatically.
 
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  DTEDFrameCacheHandler cache
          The cache handler.
static java.lang.String DTEDKillCacheProperty
           
static java.lang.String DTEDLevelProperty
           
static java.lang.String DTEDMinScaleProperty
           
protected  boolean firstProjectionWarningSent
          A flag to keep track of when the first time a warning was put up if the projection isn't EquiArc.
protected  boolean killCache
          Flag to delete the cache if the layer is removed from the map.
protected  long minScale
           
protected  javax.swing.Box paletteBox
          The user interface palette for the DTED layer.
 
Fields inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer
consumeEvents, ConsumeEventsProperty, filter, interruptable, InterruptableProperty, layerWorker, LAYERWORKER_LOCK, layerWorkerQueue, logger, 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, 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.dataAccess.dted.DTEDConstants
BANDSHADING, BOUNDARYSHADING, COLOREDSHADING, DEFAULT_BANDHEIGHT, DEFAULT_SLOPE_ADJUST, LEVEL_0, LEVEL_1, LEVEL_2, NOSHADING, SLOPESHADING
 
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
DTEDFrameCacheLayer()
          The default constructor for the Layer.
DTEDFrameCacheLayer(DTEDFrameCache dfc)
          The default constructor for the Layer.
 
Method Summary
 boolean determineLocation(java.awt.event.MouseEvent e)
           
 void findAndInit(java.lang.Object someObj)
          This method is called by the findAndInit(Iterator) method, once for every object inside the iterator.
 void findAndUndo(java.lang.Object someObj)
          This is the method that does the opposite as the findAndInit(Object).
 DTEDFrameCacheHandler getCache()
           
 int getDtedLevel()
          Get the value set for which DTED level is being used, 0-2.
 DTEDFrameCache getFrameCache()
           
 java.awt.Component getGUI()
          Creates the interface palette.
 boolean getKillCache()
          Get whether the cache will be killed when the layer is removed from the map.
 MapMouseInterpreter getMouseEventInterpreter()
          Overridden to modify the MapMouseInterpreter used by the layer.
 boolean isHighlightable(OMGraphic omg)
          Don't need DTEDFrames highlighting themselves.
 void paint(java.awt.Graphics g)
          Paints the layer.
 OMGraphicList prepare()
          Prepares the graphics for the layer.
 void removed(java.awt.Container cont)
          Called when the layer is no longer part of the map.
 void setCache(DTEDFrameCacheHandler cache)
           
protected  void setDefaultValues()
           
 void setDtedLevel(int level)
           
 void setFrameCache(DTEDFrameCache dfc)
           
 void setKillCache(boolean kc)
           
 void setProperties(java.util.Properties properties)
          Set all the DTED properties from a properties object.
 void setProperties(java.lang.String prefix, java.util.Properties properties)
          Set all the DTED properties from a properties object.
 
Methods inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer
actionPerformed, canSetList, copy, createLayerWorker, cut, deselect, dispose, doAction, doPrepare, filter, filter, filter, getConsumeEvents, getDefaultSettingsPanel, getFilter, getInfoText, getItemsForMapMenu, getItemsForOMGraphicMenu, getLayerWorker, getList, getMapMouseListener, getMouseModeIDsForEvents, getProjectionChangePolicy, getProperties, getPropertyInfo, getRedrawButton, getRenderPolicy, getSelected, getSettingsButton, getToolTipTextFor, getTransparency, getTransparencyAdjustmentPanel, highlight, isCancelled, isInterruptable, isSelectable, isWorking, leftClick, mouseOver, paste, projectionChanged, receivesMapEvents, renderDataForProjection, resetFiltering, select, setConsumeEvents, setFilter, setInterruptable, setLayerWorker, setList, setMouseEventInterpreter, setMouseModeIDsForEvents, setProjectionChangePolicy, setRenderPolicy, setTransparency, supportsSQL, unhighlight, workerComplete
 
Methods inherited from class com.bbn.openmap.Layer
addComponentListener, added, addInfoDisplayListener, addLayerStatusListener, addMouseListener, addVetoableChangeListener, childrenAdded, childrenRemoved, clearListeners, connectToBeanContext, createWindowSupport, disconnectFromBeanContext, finalize, findAndInit, fireHideToolTip, firePaletteEvent, fireRequestBrowserContent, fireRequestBrowserContent, fireRequestCursor, fireRequestInfoLine, fireRequestInfoLine, fireRequestInfoLine, fireRequestMessage, fireRequestMessage, fireRequestToolTip, fireRequestToolTip, fireRequestURL, fireRequestURL, fireStatusUpdate, fireStatusUpdate, fireVetoableChange, getAddAsBackground, getAddToBeanContext, getAttribute, getBeanContext, getCoordTransform, getIcon, getMaxScale, getMinScale, getPackage, getPalette, getProjection, getPropertyPrefix, getWindowSupport, hasGUI, hidePalette, isAutoPalette, isProjectionOK, isReadyToPaint, isRemovable, notifyHideHack, prependDataPathPrefix, putAttribute, removeComponentListener, removeConfirmed, removeInfoDisplayListener, removeLayerStatusListener, removeVetoableChangeListener, repaint, resetPalette, setAddAsBackground, setAddToBeanContext, setAutoPalette, setBeanContext, setCoordTransform, setIcon, setLayerProperties, setMaxScale, setMinScale, setName, setPaletteVisible, setProjection, setProjection, 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 java.awt.event.ActionListener
actionPerformed
 
Methods inherited from interface java.beans.beancontext.BeanContextChild
addPropertyChangeListener, removePropertyChangeListener
 

Field Detail

cache

protected transient DTEDFrameCacheHandler cache
The cache handler.


minScale

protected long minScale

killCache

protected boolean killCache
Flag to delete the cache if the layer is removed from the map.


DTEDLevelProperty

public static final java.lang.String DTEDLevelProperty
See Also:
Constant Field Values

DTEDMinScaleProperty

public static final java.lang.String DTEDMinScaleProperty
See Also:
Constant Field Values

DTEDKillCacheProperty

public static final java.lang.String DTEDKillCacheProperty
See Also:
Constant Field Values

firstProjectionWarningSent

protected boolean firstProjectionWarningSent
A flag to keep track of when the first time a warning was put up if the projection isn't EquiArc.


paletteBox

protected javax.swing.Box paletteBox
The user interface palette for the DTED layer.

Constructor Detail

DTEDFrameCacheLayer

public DTEDFrameCacheLayer()
The default constructor for the Layer. All of the attributes are set to their default values.


DTEDFrameCacheLayer

public DTEDFrameCacheLayer(DTEDFrameCache dfc)
The default constructor for the Layer. All of the attributes are set to their default values.

Parameters:
dfc - paths to the DTED directories that hold level 0 and 1 data.
Method Detail

setFrameCache

public void setFrameCache(DTEDFrameCache dfc)

getFrameCache

public DTEDFrameCache getFrameCache()

getCache

public DTEDFrameCacheHandler getCache()

setCache

public void setCache(DTEDFrameCacheHandler cache)

setDefaultValues

protected void setDefaultValues()

setProperties

public void setProperties(java.util.Properties properties)
Set all the DTED properties from a properties object.

Specified by:
setProperties in interface PropertyConsumer
Overrides:
setProperties in class Layer
Parameters:
properties - the Properties object.

setProperties

public void setProperties(java.lang.String prefix,
                          java.util.Properties properties)
Set all the DTED properties from a properties object.

Specified by:
setProperties in interface PropertyConsumer
Overrides:
setProperties in class OMGraphicHandlerLayer
Parameters:
prefix - the token to prefix the property names
properties - the Properties object

removed

public void removed(java.awt.Container cont)
Called when the layer is no longer part of the map.

Overrides:
removed in class Layer
Parameters:
cont - Container

findAndInit

public void findAndInit(java.lang.Object someObj)
Description copied from class: Layer
This method is called by the findAndInit(Iterator) method, once for every object inside the iterator. It's here to allow subclasses a way to receive objects and still let the super classes have a shot at the object. So, you can override this method can call super.findAndInit(obj), or override the findAndInit(Iterator) method and call super.findAndInit(obj). Whatever.

Overrides:
findAndInit in class Layer

findAndUndo

public void findAndUndo(java.lang.Object someObj)
Description copied from class: Layer
This is the method that does the opposite as the findAndInit(Object). Lets you call super classes with objects that need to be removed. At this level, if the layer detects that it is being removed from the MapHandler, it calls dispose on itself.

Overrides:
findAndUndo in class Layer

prepare

public OMGraphicList prepare()
Prepares the graphics for the layer. This is where the getRectangle() method call is made on the dted.

Occasionally it is necessary to abort a prepare call. When this happens, the map will set the cancel bit in the LayerThread, (the thread that is running the prepare). If this Layer needs to do any cleanups during the abort, it should do so, but return out of the prepare asap.

Overrides:
prepare in class OMGraphicHandlerLayer

paint

public void paint(java.awt.Graphics g)
Paints the layer.

Overrides:
paint in class OMGraphicHandlerLayer
Parameters:
g - the Graphics context for painting

getDtedLevel

public int getDtedLevel()
Get the value set for which DTED level is being used, 0-2.


setDtedLevel

public void setDtedLevel(int level)

getKillCache

public boolean getKillCache()
Get whether the cache will be killed when the layer is removed from the map.


setKillCache

public void setKillCache(boolean kc)

getGUI

public java.awt.Component getGUI()
Creates the interface palette.

Overrides:
getGUI in class Layer
Returns:
java.awt.Component or null, null by default.

getMouseEventInterpreter

public MapMouseInterpreter getMouseEventInterpreter()
Overridden to modify the MapMouseInterpreter used by the layer.

Overrides:
getMouseEventInterpreter in class OMGraphicHandlerLayer

determineLocation

public boolean determineLocation(java.awt.event.MouseEvent e)

isHighlightable

public boolean isHighlightable(OMGraphic omg)
Don't need DTEDFrames highlighting themselves.

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


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