com.bbn.openmap.layer.location
Class TimerLocationLayer

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.location.LocationLayer
                          extended by com.bbn.openmap.layer.location.TimerLocationLayer
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 TimerLocationLayer
extends LocationLayer

The TimerLocationLayer is a LocationLayer that has a timer to automatically relod data at specified interval. The properties for this layer are the same as a LocationLayer, with the addition of two:

 
  # Specify the interval (milliseconds) for the timer. Default is 10 seconds.
  layer.updateTimerInterval=10000
  # Auto-start/stop the timer when the layer is part of the Default
  # is true.  There is a control to start/stop the timer on the
  # palette.
  layer.automaticTimer=true;
 
 

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  boolean autoTimer
          Flag to note whether file reloading should only happen when the layer is visible.
protected  javax.swing.JCheckBox autoTimerButton
           
static java.lang.String AutoTimerProperty
          automaticTimer
protected  javax.swing.Timer timer
          Reloading timer.
protected  javax.swing.JCheckBox timerButton
           
protected  int updateInterval
          The delay between timer pulses, in milliseconds.
static java.lang.String UpdateTimerIntervalProperty
          updateTimerInterval
 
Fields inherited from class com.bbn.openmap.layer.location.LocationLayer
allowPartials, AllowPartialsProperty, box, cancel, dataHandlers, declutterButton, declutterMatrix, DeclutterMatrixClassProperty, LocationHandlerListProperty, recenter, useDeclutterMatrix, UseDeclutterMatrixProperty
 
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, 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
TimerLocationLayer()
          The default constructor for the Layer.
 
Method Summary
 void createTimer()
          Creates a timer with the current updateInterval and calls setTimer().
 boolean getAutoTimer()
           
 java.awt.Component getGUI()
          Provides the palette widgets to control the options of showing maps, or attribute text.
 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.
 javax.swing.Timer getTimer()
          Get the timer being used for automatic updates.
 int getUpdateInterval()
           
 void projectionChanged(ProjectionEvent e)
          From the ProjectionListener interface.
 void removed(java.awt.Container cont)
          This method is called after the layer is removed from the MapBean and when the projection changes.
 void setAutoTimer(boolean value)
          Sets whether the timer should automatically be turned on and off when the layer is added and removed from the map.
 void setProperties(java.lang.String prefix, java.util.Properties properties)
          The properties and prefix are managed and decoded here, for the standard uses of the LocationLayer.
 void setTimer(javax.swing.Timer t)
          If you want the layer to update itself at certain intervals, you can set the timer to do that.
 void setUpdateInterval(int delay)
          Set how often the timer calls timerPing.
 void timerPing()
          What to do when the timer goes off.
protected  void updateTimerButton()
          Enable the timer button if there is a timer, check it on if the timer is running.
 
Methods inherited from class com.bbn.openmap.layer.location.LocationLayer
createWindowSupport, getDeclutterMatrix, getItemsForOMGraphicMenu, getLocationHandlers, getToolTipTextFor, getUseDeclutterMatrix, paint, prepare, reloadData, resetPalette, setDeclutterMatrix, setLocationHandlers, setLocationHandlers, setUseDeclutterMatrix
 
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, getLayerWorker, getList, getMapMouseListener, getMouseEventInterpreter, getMouseModeIDsForEvents, getProjectionChangePolicy, getRedrawButton, getRenderPolicy, getSelected, getSettingsButton, getTransparency, getTransparencyAdjustmentPanel, highlight, isCancelled, isHighlightable, isInterruptable, isSelectable, isWorking, leftClick, mouseOver, paste, 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, 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, getIcon, getMaxScale, getMinScale, getPackage, getPalette, getProjection, getPropertyPrefix, getWindowSupport, hasGUI, hidePalette, isAutoPalette, isProjectionOK, isReadyToPaint, isRemovable, notifyHideHack, prependDataPathPrefix, putAttribute, removeComponentListener, removeConfirmed, removeInfoDisplayListener, removeLayerStatusListener, removeVetoableChangeListener, repaint, 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 java.beans.beancontext.BeanContextChild
addPropertyChangeListener, removePropertyChangeListener
 

Field Detail

timer

protected javax.swing.Timer timer
Reloading timer.


UpdateTimerIntervalProperty

public static final java.lang.String UpdateTimerIntervalProperty
updateTimerInterval

See Also:
Constant Field Values

AutoTimerProperty

public static final java.lang.String AutoTimerProperty
automaticTimer

See Also:
Constant Field Values

autoTimer

protected boolean autoTimer
Flag to note whether file reloading should only happen when the layer is visible. True by default.


timerButton

protected javax.swing.JCheckBox timerButton

autoTimerButton

protected javax.swing.JCheckBox autoTimerButton

updateInterval

protected int updateInterval
The delay between timer pulses, in milliseconds. Default is 10 seconds.

Constructor Detail

TimerLocationLayer

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

Method Detail

projectionChanged

public void projectionChanged(ProjectionEvent e)
Description copied from class: OMGraphicHandlerLayer
From the ProjectionListener interface. The method gets called when the layer is part of the map, and whenever the map projection changes. Will trigger a repaint().

The ProjectionEvent is passed to the current ProjectionChangePolicy object, which determines what will happen on the layer and how. By default, a StandardPCPolicy is notified with the projection change, and it will test the projection for changes and make sure prepare() is called. It will make the decision whether doPrepare() is called, based on the number of OMGraphics on the list, which may launch a swing worker thread to call prepare(). The StandardPCPolicy does not do anything to the OMGraphicList when the projection changes.

If you need the OMGraphicList cleared out with a new projection, you can substitute a ListRestPCPolicy for the StandardPCPolicy. You would want to do this if your OMGraphicList changes for different projections - The reason the OMGraphicList is nulled out is so if another layer finishes before yours does and gets repainted, your old OMGraphics don't get painted along side their new ones - it's a mismatched situation. You can set the ProjectionChangePolicy directly with the setProjectionChangePolicy, or by overriding the getProjectionChangePolicy method and returning the type you want by default if it is null.

Specified by:
projectionChanged in interface ProjectionListener
Overrides:
projectionChanged in class OMGraphicHandlerLayer
Parameters:
e - ProjectionEvent
See Also:
ProjectionChangePolicy, StandardPCPolicy, ListResetPCPolicy

removed

public void removed(java.awt.Container cont)
This method is called after the layer is removed from the MapBean and when the projection changes. If the autoTimer is set, the timer is stopped.

Overrides:
removed in class LocationLayer
Parameters:
cont - Container

getGUI

public java.awt.Component getGUI()
Provides the palette widgets to control the options of showing maps, or attribute text.

Overrides:
getGUI in class LocationLayer
Returns:
Component object representing the palette widgets.

setProperties

public void setProperties(java.lang.String prefix,
                          java.util.Properties properties)
The properties and prefix are managed and decoded here, for the standard uses of the LocationLayer.

Specified by:
setProperties in interface PropertyConsumer
Overrides:
setProperties in class LocationLayer
Parameters:
prefix - string prefix used in the properties file for this layer.
properties - the properties set in the properties file.

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 property key it uses for configuration.

Specified by:
getProperties in interface PropertyConsumer
Overrides:
getProperties in class LocationLayer
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.). For Layer, this method should at least return the 'prettyName' property.

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

setAutoTimer

public void setAutoTimer(boolean value)
Sets whether the timer should automatically be turned on and off when the layer is added and removed from the map.

If the layer is not visible, the timer may be started or stopped when this method is called. If the autoTimer is turned off, and the layer has received a projection before, the timer is turned on. If the autoTimer is on, the timer will be stopped.


getAutoTimer

public boolean getAutoTimer()

getTimer

public javax.swing.Timer getTimer()
Get the timer being used for automatic updates. May be null if a timer is not set.


setTimer

public void setTimer(javax.swing.Timer t)
If you want the layer to update itself at certain intervals, you can set the timer to do that. Set it to null to disable it.


timerPing

public void timerPing()
What to do when the timer goes off.


createTimer

public void createTimer()
Creates a timer with the current updateInterval and calls setTimer().


setUpdateInterval

public void setUpdateInterval(int delay)
Set how often the timer calls timerPing. If less than or equal to zero, the timer will be stopped, but the interval will not be affected.


getUpdateInterval

public int getUpdateInterval()

updateTimerButton

protected void updateTimerButton()
Enable the timer button if there is a timer, check it on if the timer is running.



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