org.ka2ddo.yaac.gui
Class StationRenderer

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 org.ka2ddo.yaac.gui.StationRenderer
All Implemented Interfaces:
MapMouseListener, ProjectionListener, ProjectionPainter, PropertyConsumer, java.awt.event.ActionListener, java.awt.event.ComponentListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, java.io.Serializable, java.util.EventListener, TrackerListener, FilterChangeListener, FontChangeListener

public class StationRenderer
extends Layer
implements TrackerListener, MapMouseListener, FilterChangeListener, java.awt.event.ComponentListener, FontChangeListener

This class draws APRS station symbols on a OpenMap MapBean object.

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
 javax.swing.AbstractAction CONTEXT_MENU_ACTION
           
static java.awt.Stroke MICESTATUS_CUSTOM_STRIPE
           
static java.awt.Stroke MICESTATUS_STRIPE
           
 
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, 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
StationRenderer()
          Create the StationRenderer layer for the map.
 
Method Summary
 void addSpecificTrackStripe(java.lang.String identifier)
          Add the identifier of a single station or object whose track stripe is to be plotted.
static javax.swing.JPopupMenu buildPopupMenu(int mx, int my, Projection p, java.util.ArrayList<StationState> matchList)
          Create a popup menu contextually suitable for the point on the map that was clicked.
 void clearAllSpecificTrackStripes()
          Clear the plotting of all specific station/object track stripes.
 void componentHidden(java.awt.event.ComponentEvent e)
          Invoked when the component has been made invisible.
 void componentMoved(java.awt.event.ComponentEvent e)
          Invoked when the component's position changes.
 void componentResized(java.awt.event.ComponentEvent e)
          Invoked when the component's size changes.
 void componentShown(java.awt.event.ComponentEvent e)
          Invoked when the component has been made visible.
 void conditionalRepaint()
          Say this layer needs repainting, but don't rush it if lots of requests come in.
 void filterSettingsChanged(Filter changedFilter, boolean changedByUser)
          Called when the specified Filter's matching criteria have been changed.
 void fontChanged(java.lang.String category, java.awt.Font newFont)
          Report that the font choice for the specified category has changed.
 long getLastElapsedPaintTime()
          Return the amount of time (in milliseconds) for the last station render.
 int getLastNumDrawnObjects()
          Return the number of Objects (non-transmitters) rendered in the last station render.
 int getLastNumDrawnStations()
          Return the number of stations (transmitters) rendered in the last station render.
 MapMouseListener getMapMouseListener()
           
 long getMaxAgeDRObject()
          Get the maximum time that dead reckoning will be projected for an object (non-self-transmitter).
 long getMaxAgeDRSpecialObject()
           
 long getMaxAgeDRStation()
          Get the maximum time that dead reckoning will be projected for a station (self-transmitter).
 long getMaxTrackDuration()
          Get the maximum duration of a track stripe in milliseconds.
 java.lang.String[] getMouseModeServiceList()
           
 boolean isDrawAge()
          Report whether the time interval since last receipt of a message from or about a station or object is plotted below the station/object's name.
 boolean isDrawAliasInsteadOfCallsign()
          Report whether alias should be drawn instead of callsign should be drawn for each station/object if an alias is defined for the station/object..
 boolean isDrawAllTrackStripes()
          Indicate whether all moving stations should have track stripes plotted.
 boolean isDrawAlohaCircle()
          Report whether aloha circles (optimal maximum RF transmission range for the local station before causing excessive collisions) are plotted on the map.
 boolean isDrawAmbiguityCircle()
          Report whether a translucent ambiguity circle is drawn behind each station or object to indicate the area over which it could be located, given the precision of the position information reported.
 boolean isDrawCallsign()
          Report whether callsign label should be drawn for each station/object.
 boolean isDrawDeadObjects()
          Report whether Objects that have been "killed" are plotted on the map.
 boolean isDrawDeadReckoning()
          Report whether deadreckoning position updates for moving stations and objects are calculated and the positions offset and deadreckoning vectors plotted when the stations and objecfts are drawn.
 boolean isDrawDF()
          Report whether direction-finding cones are plotted from stations reporting DFS vector information
 boolean isDrawDoubleSizedSymbols()
          Report if symbols are being drawn double-sized.
 boolean isDrawItemStatus()
          Report whether a color-coded "halo" is drawn around each station or object icon indicating its status as one of the APRSdos categories: fixed, mobile, deadreckoned, old, emergency-reporting, locally-controlled Object, or other station's Object.
 boolean isDrawMicEStatusCircles()
          Report whether color-coded circles indicating Mic-E status codes are be drawn around stations reporting those codes.
 boolean isDrawNWSMultiLine()
          Report whether encoded polylines (generally used for National Weather Service severe weather regions) are plotted on the map.
 boolean isDrawRangeCircles()
          Report whether radio range circles are being drawn for stations reporting or implying transmission range limits.
 boolean isDrawSelf()
          Report whether the local station is plotted on the map.
 boolean isDrawSelfLikeOther()
          Report whether local station is drawn like any other station (using its APRS symbol icon) or as crosshairs or a pointer making it obvious where the station is on the map.
 boolean isDrawWeatherAsWeather()
          Report whether weather stations are drawn as old-style weather map circles with a flagged barb indicating wind direction and speed.
 boolean isKeepSpecificallyTrackedStationsOnScreen()
           
 boolean isSpecificallyTracked(java.lang.String identifier)
          Test if a given identifier is on the tracking list.
 boolean isSpecificallyTracking()
          Test if any identifiers are on the tracking list.
 void messageAdded(StationState ss, int index, AX25Message msg)
          Called when a AX25Message is added to the history for a station in the tracker.
 void messageDeleted(StationState ss, int index, AX25Message msg)
          Called when a AX25Message is deleted from the history for a station in the tracker.
 boolean mouseClicked(java.awt.event.MouseEvent e)
           
 boolean mouseDragged(java.awt.event.MouseEvent e)
           
 void mouseEntered(java.awt.event.MouseEvent e)
           
 void mouseExited(java.awt.event.MouseEvent e)
           
 void mouseMoved()
           
 boolean mouseMoved(java.awt.event.MouseEvent e)
           
 boolean mousePressed(java.awt.event.MouseEvent e)
           
 boolean mouseReleased(java.awt.event.MouseEvent e)
           
 void paint(java.awt.Graphics g)
          Render this layer's content into the MapBean.
 void projectionChanged(ProjectionEvent e)
          Invoked when there has been a fundamental change to the Map.
 boolean removeSpecificTrackStripe(java.lang.String identifier)
          Remove the identifier of a single station or object whose track stripe is no longer to be plotted.
 void repaint()
          Repaints the StationRenderer if it needs it and it hasn't been too little time since the last repaint.
 void setDrawAge(boolean drawAge)
          Specify whether the time interval since last receipt of a message from or about a station or object should be plotted below the station/object's name.
 void setDrawAliasInsteadOfCallsign(boolean drawAliasInsteadOfCallsign)
          Specify whether alias should be drawn instead of callsign should be drawn for each station/object if an alias is defined for the station/object..
 void setDrawAllTrackStripes(boolean drawAllTrackStripes)
          Specify whether all moving stations should have track stripes plotted.
 void setDrawAlohaCircle(boolean drawAlohaCircle)
          Specify whether aloha circles (optimal maximum RF transmission range for the local station before causing excessive collisions) should be plotted on the map.
 void setDrawAmbiguityCircle(boolean drawAmbiguityCircle)
          Specify whether a translucent ambiguity circle should be drawn behind each station or object to indicate the area over which it could be located, given the precision of the position information reported.
 void setDrawCallsign(boolean drawCallsign)
          Specify whether callsign labels should be drawn for each station/object.
 void setDrawDeadObjects(boolean drawDeadObjects)
          Specify whether Objects that have been "killed" should still be plotted on the map.
 void setDrawDeadReckoning(boolean drawDeadReckoning)
          Specify whether deadreckoning position updates for moving stations and objects should be calculated and the positions offset and deadreckoning vectors plotted when the stations and objecfts are drawn.
 void setDrawDF(boolean drawDF)
          Specify whether direction-finding cones should be plotted from stations reporting DFS vector information
 void setDrawDoubleSizedSymbols(boolean drawDoubleSizedSymbols)
          Specify whether symbols should be drawn double-sized (32x32 pixels) instead of single-sized (16x16).
 void setDrawItemStatus(boolean drawItemStatus)
          Specify whether a color-coded "halo" should be drawn around each station or object icon indicating its status as one of the APRSdos categories: fixed, mobile, deadreckoned, old, emergency-reporting, locally-controlled Object, or other station's Object.
 void setDrawMicEStatusCircles(boolean drawMicEStatusCircles)
          Specify whether color-coded circles indicating Mic-E status codes should be drawn around stations reporting those codes.
 void setDrawNWSMultiLine(boolean drawNWSMultiLine)
          Specify whether encoded polylines (generally used for National Weather Service severe weather regions) should be plotted on the map.
 void setDrawRangeCircles(boolean drawRangeCircles)
          Specify whether range circles should be drawn around stations reporting or implying transmission range limits.
 void setDrawSelf(boolean drawSelf)
          Specify whether the local station should be plotted on the map.
 void setDrawSelfLikeOther(boolean drawSelfLikeOther)
          Specify whether local station should be drawn like any other station (using its APRS symbol icon) or as crosshairs or a pointer making it obvious where the station is on the map.
 void setDrawWeatherAsWeather(boolean drawWeatherAsWeather)
          Specify whether weather stations should be drawn as old-style weather map circles with a flagged barb indicating wind direction and speed.
 void setKeepSpecificallyTrackedStationsOnScreen(boolean keepSpecificallyTrackedStationsOnScreen)
           
 void setMaxAgeDRObject(long maxAgeDRObject)
          Set the maximum time that dead reckoning will be projected for an object (non-self-transmitter).
 void setMaxAgeDRSpecialObject(long maxAgeDRSpecialObject)
           
 void setMaxAgeDRStation(long maxAgeDRStation)
          Set the maximum time that dead reckoning will be projected for a station (self-transmitter).
 void setMaxTrackDuration(long maxTrackDuration)
          Set the maximum duration of a track stripe in milliseconds.
 void startLineOfSight()
           
 void stationAdded(StationState ss, int index)
          Called when a new station is initially added to the tracker.
 void stationDeleted(StationState ss, int index)
          Called when an existing station is deleted from the tracker.
 void stationUpdated(StationState ss)
          Called when an existing station is updated with new information in the tracker.
 
Methods inherited from class com.bbn.openmap.Layer
actionPerformed, addComponentListener, added, addInfoDisplayListener, addLayerStatusListener, addMouseListener, addVetoableChangeListener, childrenAdded, childrenRemoved, clearListeners, connectToBeanContext, createWindowSupport, disconnectFromBeanContext, dispose, 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, getProperties, getPropertyInfo, getPropertyPrefix, getWindowSupport, hasGUI, hidePalette, isAutoPalette, isProjectionOK, isRemovable, notifyHideHack, prependDataPathPrefix, putAttribute, removeComponentListener, removeConfirmed, removed, removeInfoDisplayListener, removeLayerStatusListener, removeVetoableChangeListener, renderDataForProjection, repaint, resetPalette, setAddAsBackground, setAddToBeanContext, setAutoPalette, setBeanContext, setCoordTransform, setIcon, setLayerProperties, setMaxScale, setMinScale, setName, setPaletteVisible, setProjection, setProjection, setProperties, setProperties, setPropertyPrefix, 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, 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

MICESTATUS_STRIPE

public static final java.awt.Stroke MICESTATUS_STRIPE

MICESTATUS_CUSTOM_STRIPE

public static final java.awt.Stroke MICESTATUS_CUSTOM_STRIPE

CONTEXT_MENU_ACTION

public final javax.swing.AbstractAction CONTEXT_MENU_ACTION
Constructor Detail

StationRenderer

public StationRenderer()
Create the StationRenderer layer for the map.

Method Detail

isDrawAllTrackStripes

public boolean isDrawAllTrackStripes()
Indicate whether all moving stations should have track stripes plotted.

Returns:
boolean true if all moving stations should have track stripes

setDrawAllTrackStripes

public void setDrawAllTrackStripes(boolean drawAllTrackStripes)
Specify whether all moving stations should have track stripes plotted.

Parameters:
drawAllTrackStripes - boolean true if all moving stations should have track stripes

clearAllSpecificTrackStripes

public void clearAllSpecificTrackStripes()
Clear the plotting of all specific station/object track stripes.


addSpecificTrackStripe

public void addSpecificTrackStripe(java.lang.String identifier)
Add the identifier of a single station or object whose track stripe is to be plotted.

Parameters:
identifier - String station or object identifier

removeSpecificTrackStripe

public boolean removeSpecificTrackStripe(java.lang.String identifier)
Remove the identifier of a single station or object whose track stripe is no longer to be plotted.

Parameters:
identifier - String station or object identifier
Returns:
boolean true if identifier was removed

isSpecificallyTracked

public boolean isSpecificallyTracked(java.lang.String identifier)
Test if a given identifier is on the tracking list.

Parameters:
identifier - String station or object identifier
Returns:
boolean true if this identifier is marked for track stripe display

isSpecificallyTracking

public boolean isSpecificallyTracking()
Test if any identifiers are on the tracking list.

Returns:
boolean true if any stations are specifically tagged for tracking

getMaxTrackDuration

public long getMaxTrackDuration()
Get the maximum duration of a track stripe in milliseconds.

Returns:
maximum plotted track duration in milliseconds

setMaxTrackDuration

public void setMaxTrackDuration(long maxTrackDuration)
Set the maximum duration of a track stripe in milliseconds.

Parameters:
maxTrackDuration - maximum plotted track duration in milliseconds

isDrawRangeCircles

public boolean isDrawRangeCircles()
Report whether radio range circles are being drawn for stations reporting or implying transmission range limits.

Returns:
boolean true if range circles are being drawn

setDrawRangeCircles

public void setDrawRangeCircles(boolean drawRangeCircles)
Specify whether range circles should be drawn around stations reporting or implying transmission range limits.

Parameters:
drawRangeCircles - boolean true if range circles should be drawn

isDrawMicEStatusCircles

public boolean isDrawMicEStatusCircles()
Report whether color-coded circles indicating Mic-E status codes are be drawn around stations reporting those codes.

Returns:
boolean true if Mic-E status color circles are drawn

setDrawMicEStatusCircles

public void setDrawMicEStatusCircles(boolean drawMicEStatusCircles)
Specify whether color-coded circles indicating Mic-E status codes should be drawn around stations reporting those codes.

Parameters:
drawMicEStatusCircles - boolean true if Mic-E status color circles should be drawn

isDrawSelf

public boolean isDrawSelf()
Report whether the local station is plotted on the map.

Returns:
boolean true if local station is drawn

setDrawSelf

public void setDrawSelf(boolean drawSelf)
Specify whether the local station should be plotted on the map.

Parameters:
drawSelf - boolean true if local station should be drawn

isDrawSelfLikeOther

public boolean isDrawSelfLikeOther()
Report whether local station is drawn like any other station (using its APRS symbol icon) or as crosshairs or a pointer making it obvious where the station is on the map.

Returns:
boolean true to use APRS symbol, or false to use crosshairs for fixed station or pointer arrowhead for moving station
See Also:
isDrawSelf()

setDrawSelfLikeOther

public void setDrawSelfLikeOther(boolean drawSelfLikeOther)
Specify whether local station should be drawn like any other station (using its APRS symbol icon) or as crosshairs or a pointer making it obvious where the station is on the map.

Parameters:
drawSelfLikeOther - boolean true to use APRS symbol, or false to use crosshairs for fixed station or pointer arrowhead for moving station
See Also:
setDrawSelf(boolean)

isDrawWeatherAsWeather

public boolean isDrawWeatherAsWeather()
Report whether weather stations are drawn as old-style weather map circles with a flagged barb indicating wind direction and speed.

Returns:
boolean true if weather stations should be plotted with weather map symbols, false if using APRS icon

setDrawWeatherAsWeather

public void setDrawWeatherAsWeather(boolean drawWeatherAsWeather)
Specify whether weather stations should be drawn as old-style weather map circles with a flagged barb indicating wind direction and speed.

Parameters:
drawWeatherAsWeather - boolean true if weather stations should be plotted with weather map symbols, false if using APRS icon

isDrawAge

public boolean isDrawAge()
Report whether the time interval since last receipt of a message from or about a station or object is plotted below the station/object's name.

Returns:
boolean true if age is to be plotted

setDrawAge

public void setDrawAge(boolean drawAge)
Specify whether the time interval since last receipt of a message from or about a station or object should be plotted below the station/object's name.

Parameters:
drawAge - boolean true if age is to be plotted

isDrawDeadObjects

public boolean isDrawDeadObjects()
Report whether Objects that have been "killed" are plotted on the map.

Returns:
boolean true if "killed" Objects are plotted

setDrawDeadObjects

public void setDrawDeadObjects(boolean drawDeadObjects)
Specify whether Objects that have been "killed" should still be plotted on the map.

Parameters:
drawDeadObjects - boolean true if "killed" Objects should be plotted

isDrawAlohaCircle

public boolean isDrawAlohaCircle()
Report whether aloha circles (optimal maximum RF transmission range for the local station before causing excessive collisions) are plotted on the map.

Returns:
boolean true if aloha circles are drawn

setDrawAlohaCircle

public void setDrawAlohaCircle(boolean drawAlohaCircle)
Specify whether aloha circles (optimal maximum RF transmission range for the local station before causing excessive collisions) should be plotted on the map. Note these will only appear if the local station has RF ports that can have collisions.

Parameters:
drawAlohaCircle - boolean true if aloha circles should be drawn

isDrawItemStatus

public boolean isDrawItemStatus()
Report whether a color-coded "halo" is drawn around each station or object icon indicating its status as one of the APRSdos categories: fixed, mobile, deadreckoned, old, emergency-reporting, locally-controlled Object, or other station's Object.

Returns:
boolean true if status halo is drawm
See Also:
StationState.SpecialState

setDrawItemStatus

public void setDrawItemStatus(boolean drawItemStatus)
Specify whether a color-coded "halo" should be drawn around each station or object icon indicating its status as one of the APRSdos categories: fixed, mobile, deadreckoned, old, emergency-reporting, locally-controlled Object, or other station's Object.

Parameters:
drawItemStatus - boolean true if status halo should be drawm
See Also:
StationState.SpecialState

isDrawAmbiguityCircle

public boolean isDrawAmbiguityCircle()
Report whether a translucent ambiguity circle is drawn behind each station or object to indicate the area over which it could be located, given the precision of the position information reported.

Returns:
boolean true if ambiguity circles are plotted

setDrawAmbiguityCircle

public void setDrawAmbiguityCircle(boolean drawAmbiguityCircle)
Specify whether a translucent ambiguity circle should be drawn behind each station or object to indicate the area over which it could be located, given the precision of the position information reported.

Parameters:
drawAmbiguityCircle - boolean true if ambiguity circles should be plotted

isDrawDeadReckoning

public boolean isDrawDeadReckoning()
Report whether deadreckoning position updates for moving stations and objects are calculated and the positions offset and deadreckoning vectors plotted when the stations and objecfts are drawn.

Returns:
boolean true if deadreckoning is plotted

setDrawDeadReckoning

public void setDrawDeadReckoning(boolean drawDeadReckoning)
Specify whether deadreckoning position updates for moving stations and objects should be calculated and the positions offset and deadreckoning vectors plotted when the stations and objecfts are drawn.

Parameters:
drawDeadReckoning - boolean true if deadreckoning should be plotted

getMaxAgeDRStation

public long getMaxAgeDRStation()
Get the maximum time that dead reckoning will be projected for a station (self-transmitter).

Returns:
maximum dead reckon interval in milliseconds

setMaxAgeDRStation

public void setMaxAgeDRStation(long maxAgeDRStation)
Set the maximum time that dead reckoning will be projected for a station (self-transmitter).

Parameters:
maxAgeDRStation - maximum dead reckon interval in milliseconds

getMaxAgeDRObject

public long getMaxAgeDRObject()
Get the maximum time that dead reckoning will be projected for an object (non-self-transmitter).

Returns:
maximum dead reckon interval in milliseconds

setMaxAgeDRObject

public void setMaxAgeDRObject(long maxAgeDRObject)
Set the maximum time that dead reckoning will be projected for an object (non-self-transmitter).

Parameters:
maxAgeDRObject - maximum dead reckon interval in milliseconds

getMaxAgeDRSpecialObject

public long getMaxAgeDRSpecialObject()

setMaxAgeDRSpecialObject

public void setMaxAgeDRSpecialObject(long maxAgeDRSpecialObject)

isDrawDF

public boolean isDrawDF()
Report whether direction-finding cones are plotted from stations reporting DFS vector information

Returns:
boolean true if direction-finding cones are drawm

setDrawDF

public void setDrawDF(boolean drawDF)
Specify whether direction-finding cones should be plotted from stations reporting DFS vector information

Parameters:
drawDF - boolean true if direction-finding cones should be drawm

isDrawNWSMultiLine

public boolean isDrawNWSMultiLine()
Report whether encoded polylines (generally used for National Weather Service severe weather regions) are plotted on the map.

Returns:
boolean true if multilines are plotted

setDrawNWSMultiLine

public void setDrawNWSMultiLine(boolean drawNWSMultiLine)
Specify whether encoded polylines (generally used for National Weather Service severe weather regions) should be plotted on the map.

Parameters:
drawNWSMultiLine - boolean true if multilines should be plotted

isDrawCallsign

public boolean isDrawCallsign()
Report whether callsign label should be drawn for each station/object.

Returns:
boolean true if callsign label should be drawn on map

setDrawCallsign

public void setDrawCallsign(boolean drawCallsign)
Specify whether callsign labels should be drawn for each station/object.

Parameters:
drawCallsign - boolean true if callsign label should be drawn on map

isDrawAliasInsteadOfCallsign

public boolean isDrawAliasInsteadOfCallsign()
Report whether alias should be drawn instead of callsign should be drawn for each station/object if an alias is defined for the station/object..

Returns:
boolean true if alias should be drawn instead of callsign

setDrawAliasInsteadOfCallsign

public void setDrawAliasInsteadOfCallsign(boolean drawAliasInsteadOfCallsign)
Specify whether alias should be drawn instead of callsign should be drawn for each station/object if an alias is defined for the station/object..

Parameters:
drawAliasInsteadOfCallsign - boolean true if alias should be drawn instead of callsign

isKeepSpecificallyTrackedStationsOnScreen

public boolean isKeepSpecificallyTrackedStationsOnScreen()

setKeepSpecificallyTrackedStationsOnScreen

public void setKeepSpecificallyTrackedStationsOnScreen(boolean keepSpecificallyTrackedStationsOnScreen)

isDrawDoubleSizedSymbols

public boolean isDrawDoubleSizedSymbols()
Report if symbols are being drawn double-sized.

Returns:
boolean true if symbols are rendered double-size

setDrawDoubleSizedSymbols

public void setDrawDoubleSizedSymbols(boolean drawDoubleSizedSymbols)
Specify whether symbols should be drawn double-sized (32x32 pixels) instead of single-sized (16x16).

Parameters:
drawDoubleSizedSymbols - boolean true if symbols should be rendered double-size

startLineOfSight

public void startLineOfSight()

projectionChanged

public void projectionChanged(ProjectionEvent e)
Invoked when there has been a fundamental change to the Map.

Layers are expected to recompute their graphics (if this makes sense), and then repaint() themselves.

Specified by:
projectionChanged in interface ProjectionListener
Parameters:
e - ProjectionEvent

paint

public void paint(java.awt.Graphics g)
Render this layer's content into the MapBean. Note that we reproject on every draw to deal with moving stations or map pans/zooms.

Overrides:
paint in class javax.swing.JComponent
Parameters:
g - Graphics object to use for rendering

messageAdded

public void messageAdded(StationState ss,
                         int index,
                         AX25Message msg)
Called when a AX25Message is added to the history for a station in the tracker.

Specified by:
messageAdded in interface TrackerListener
Parameters:
ss - StationState containing the station's information
index - zero-based integer sequence number for this station in the StationTracker
msg - APRS Message object being added to the tracker; note that non-APRS packets that can still be decoded (such as OpenTRAC) will also be passed here; AX25Frames that cannot be decoded will pass null here

messageDeleted

public void messageDeleted(StationState ss,
                           int index,
                           AX25Message msg)
Called when a AX25Message is deleted from the history for a station in the tracker.

Specified by:
messageDeleted in interface TrackerListener
Parameters:
ss - StationState containing the station's information; the initial Message will already be removed from the StationState object
index - zero-based index of the message removed from the StationState object
msg - APRS Message object being removed from the tracker; note that non-APRS packets that can still be decoded (such as OpenTRAC) will also be passed here; AX25Frames that cannot be decoded will pass null here

stationAdded

public void stationAdded(StationState ss,
                         int index)
Called when a new station is initially added to the tracker.

Specified by:
stationAdded in interface TrackerListener
Parameters:
ss - StationState containing the station's information; the initial AX25Message will not yet be stored within the StationState object
index - zero-based integer sequence number for this station in the StationTracker

stationUpdated

public void stationUpdated(StationState ss)
Called when an existing station is updated with new information in the tracker.

Specified by:
stationUpdated in interface TrackerListener
Parameters:
ss - StationState containing the station's information; the new AX25Message will not yet be stored within the StationState object

stationDeleted

public void stationDeleted(StationState ss,
                           int index)
Called when an existing station is deleted from the tracker.

Specified by:
stationDeleted in interface TrackerListener
Parameters:
ss - StationState containing the station's information
index - zero-based integer sequence number for this station in the StationTracker

getMapMouseListener

public MapMouseListener getMapMouseListener()
Overrides:
getMapMouseListener in class Layer

getMouseModeServiceList

public java.lang.String[] getMouseModeServiceList()
Specified by:
getMouseModeServiceList in interface MapMouseListener

mouseClicked

public boolean mouseClicked(java.awt.event.MouseEvent e)
Specified by:
mouseClicked in interface MapMouseListener

mouseDragged

public boolean mouseDragged(java.awt.event.MouseEvent e)
Specified by:
mouseDragged in interface MapMouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Specified by:
mouseEntered in interface MapMouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Specified by:
mouseExited in interface MapMouseListener

mouseMoved

public void mouseMoved()
Specified by:
mouseMoved in interface MapMouseListener

mouseMoved

public boolean mouseMoved(java.awt.event.MouseEvent e)
Specified by:
mouseMoved in interface MapMouseListener

mousePressed

public boolean mousePressed(java.awt.event.MouseEvent e)
Specified by:
mousePressed in interface MapMouseListener

mouseReleased

public boolean mouseReleased(java.awt.event.MouseEvent e)
Specified by:
mouseReleased in interface MapMouseListener

filterSettingsChanged

public void filterSettingsChanged(Filter changedFilter,
                                  boolean changedByUser)
Description copied from interface: FilterChangeListener
Called when the specified Filter's matching criteria have been changed.

Specified by:
filterSettingsChanged in interface FilterChangeListener
Parameters:
changedFilter - Filter that has changed
changedByUser - boolean true if change was manually made by user, false if change was made automatically by dynamic filter logic

componentResized

public void componentResized(java.awt.event.ComponentEvent e)
Invoked when the component's size changes.

Specified by:
componentResized in interface java.awt.event.ComponentListener

componentMoved

public void componentMoved(java.awt.event.ComponentEvent e)
Invoked when the component's position changes.

Specified by:
componentMoved in interface java.awt.event.ComponentListener

componentShown

public void componentShown(java.awt.event.ComponentEvent e)
Invoked when the component has been made visible.

Specified by:
componentShown in interface java.awt.event.ComponentListener

componentHidden

public void componentHidden(java.awt.event.ComponentEvent e)
Invoked when the component has been made invisible.

Specified by:
componentHidden in interface java.awt.event.ComponentListener

buildPopupMenu

public static javax.swing.JPopupMenu buildPopupMenu(int mx,
                                                    int my,
                                                    Projection p,
                                                    java.util.ArrayList<StationState> matchList)
Create a popup menu contextually suitable for the point on the map that was clicked. Each registered AbstractPopupMenuAction can decide for itself whether it should be included on the popup menu.

Parameters:
mx - screen X coordinate where popup menu was requested
my - screen Y coordinate where popup menu was requested
p - the current Projection for the map
matchList - an ArrayList of StationStates describing stations and objects at the point on the map that was clicked
Returns:
a JPopupMenu of the chosen AbstractPopupMenuActions if any were enabled for this point, or null if no menu items should be enabled here

conditionalRepaint

public void conditionalRepaint()
Say this layer needs repainting, but don't rush it if lots of requests come in.


repaint

public void repaint()
Repaints the StationRenderer if it needs it and it hasn't been too little time since the last repaint.

Overrides:
repaint in class java.awt.Component

fontChanged

public void fontChanged(java.lang.String category,
                        java.awt.Font newFont)
Report that the font choice for the specified category has changed.

Specified by:
fontChanged in interface FontChangeListener
Parameters:
category - String font family name (as defined by Font class)
newFont - actual font instance

getLastElapsedPaintTime

public long getLastElapsedPaintTime()
Return the amount of time (in milliseconds) for the last station render.

Returns:
elapsed time in milliseconds for last StationRenderer run

getLastNumDrawnObjects

public int getLastNumDrawnObjects()
Return the number of Objects (non-transmitters) rendered in the last station render.

Returns:
count of rendered Objects

getLastNumDrawnStations

public int getLastNumDrawnStations()
Return the number of stations (transmitters) rendered in the last station render.

Returns:
count of rendered stations