Map
Class SimpleMap

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by Map.SimpleMap
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, PamObserver, PamScrollObserver

public class SimpleMap
extends javax.swing.JPanel
implements PamObserver, PamScrollObserver

Mainly a container for map objects, holding the main MapPanel and the right hand control items.
Originally written by Dave McLaren. Modified by Doug Gillespie to incorporate controls onto main panel to increase overall visible size.

See Also:
Serialized Form

Nested Class Summary
(package private)  class SimpleMap.MapMouseInputAdapter
           
(package private)  class SimpleMap.MapMouseMotionAdapter
           
private  class SimpleMap.MouseWheelHandler
           
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
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
(package private)  boolean centerOnFirstShipGPS
           
protected  ClipboardCopier clipboardCopier
           
private  javax.swing.JPanel controlContiner
           
(package private)  java.util.ArrayList<PamDataBlock> dataBlocks
           
(package private)  Coordinate3d diffCursorPos
           
(package private)  PamDataBlock<GpsDataUnit> gpsDataBlock
           
(package private)  GpsTextDisplay gpsTextPanel
           
(package private)  LatLong lastClickedMouseLatLong
           
(package private)  boolean mapCanScroll
           
(package private)  MapController mapController
           
(package private)  MapPanel mapPanel
           
private  PamDataUnit mousedDataUnit
           
(package private)  java.awt.Point mouseDownPoint
           
(package private)  boolean mouseDragging
           
(package private)  java.awt.Point mouseDragPoint
           
(package private)  SimpleMap.MapMouseInputAdapter mouseInput
           
(package private)  MouseMeasureDisplay mouseMeasureDisplay
           
(package private)  SimpleMap.MapMouseMotionAdapter mouseMotion
           
(package private)  boolean mouseReleased
           
(package private)  SimpleMap.MouseWheelHandler mouseWheel
           
(package private)  Coordinate3d newCursorPos
           
(package private)  Coordinate3d oldCursorPos
           
(package private)  DisplayPanZoom panZoom
           
(package private)  PamZoomOnMapPanel panZoomOnMap
           
(package private)  double shipRotTest
           
private  PamScrollSlider viewerScroller
           
 
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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
SimpleMap(MapController mapController)
           
 
Method Summary
 void addMouseAdapterToMapPanel(java.awt.event.MouseAdapter mouseAdapter)
           
protected  void createMapComment(int x, int y)
           
private  void createMapObjects()
          Create the map objects, but don't necessarily show them.
 java.util.ArrayList<PamDataBlock> getDataBlocks()
           
 LatLong getLastClickedMouseLatLong()
           
 MapPanel getMapPanel()
           
 PamDataUnit getMousedDataUnit()
          Gets a data unit currently hovered by the mouse.
 SimpleMap.MapMouseMotionAdapter getMouseMotion()
           
 java.lang.String getObserverName()
           
 PamObserver getObserverObject()
           
 javax.swing.JComponent getPanel()
           
 long getRequiredDataHistory(PamObservable o, java.lang.Object arg)
           
(package private)  Coordinate3d getShipCoordinate()
           
private  boolean getShowMouseMeasure()
           
 PamScrollSlider getViewerScroller()
           
 void initMapPanel()
           
 void mapCanScroll(boolean b)
           
 void masterClockUpdate(long milliSeconds, long sampleNumber)
           
private  void newGpsData(GpsDataUnit newGpsDataUnit)
           
protected  void newViewTime()
          Notification that the viewer slider has moved.
protected  void newViewTimes()
          Notification of new viewer times
 void noteNewSettings()
           
protected  void paintComponent(java.awt.Graphics arg0)
           
 void refreshDetectorList()
           
 void removeObservable(PamObservable o)
          called when an Observable (PamDataBlock) is removed from the system
 void scrollRangeChanged(AbstractPamScroller absPamScroller)
          Notification sent when a scroller or slider changes it's data range
 void scrollValueChanged(AbstractPamScroller abstractPamScroller)
          Notification sent when a scroller or slider changes it's position
 void setSampleRate(float sampleRate, boolean notify)
          New sample rate
 void showMapObjects()
           
 boolean subscribeViewerBlocks()
          Subscribes a variety of data blocks to the scroll bar.
protected  void timerActions()
          Fires once a second so map can re-draw, including update of ship position based on prediction now that GPS is not read out every second.
 void update(PamObservable o, PamDataUnit arg)
          Informs the PamObserver that new data have been added to the Observable class
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, 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, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, 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, setVisible, unregisterKeyboardAction, update
 
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, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, 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, removeComponentListener, 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, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mouseMotion

SimpleMap.MapMouseMotionAdapter mouseMotion

mouseInput

SimpleMap.MapMouseInputAdapter mouseInput

mouseWheel

SimpleMap.MouseWheelHandler mouseWheel

centerOnFirstShipGPS

boolean centerOnFirstShipGPS

dataBlocks

java.util.ArrayList<PamDataBlock> dataBlocks

shipRotTest

double shipRotTest

gpsDataBlock

PamDataBlock<GpsDataUnit> gpsDataBlock

mapPanel

MapPanel mapPanel

gpsTextPanel

GpsTextDisplay gpsTextPanel

panZoom

DisplayPanZoom panZoom

mouseMeasureDisplay

MouseMeasureDisplay mouseMeasureDisplay

panZoomOnMap

PamZoomOnMapPanel panZoomOnMap

controlContiner

private javax.swing.JPanel controlContiner

clipboardCopier

protected ClipboardCopier clipboardCopier

mapController

MapController mapController

mouseDragging

boolean mouseDragging

mousedDataUnit

private PamDataUnit mousedDataUnit

lastClickedMouseLatLong

LatLong lastClickedMouseLatLong

mouseReleased

boolean mouseReleased

mapCanScroll

boolean mapCanScroll

newCursorPos

Coordinate3d newCursorPos

oldCursorPos

Coordinate3d oldCursorPos

diffCursorPos

Coordinate3d diffCursorPos

mouseDownPoint

java.awt.Point mouseDownPoint

mouseDragPoint

java.awt.Point mouseDragPoint

viewerScroller

private PamScrollSlider viewerScroller
Constructor Detail

SimpleMap

public SimpleMap(MapController mapController)
Method Detail

getObserverObject

public PamObserver getObserverObject()
Specified by:
getObserverObject in interface PamObserver
Returns:
the actual observer. In most cases concrete classes will just return 'this' in response. The exception is the Threaded observer, which will return the single thread observer.

timerActions

protected void timerActions()
Fires once a second so map can re-draw, including update of ship position based on prediction now that GPS is not read out every second.


createMapObjects

private void createMapObjects()
Create the map objects, but don't necessarily show them.


showMapObjects

public void showMapObjects()

getShowMouseMeasure

private boolean getShowMouseMeasure()

initMapPanel

public void initMapPanel()

getMapPanel

public MapPanel getMapPanel()

update

public void update(PamObservable o,
                   PamDataUnit arg)
Description copied from interface: PamObserver
Informs the PamObserver that new data have been added to the Observable class

Specified by:
update in interface PamObserver
Parameters:
o - Reference to the Observable (a PamDataBlock)
arg - Reference to the new PamDataUnit

newGpsData

private void newGpsData(GpsDataUnit newGpsDataUnit)

getObserverName

public java.lang.String getObserverName()
Specified by:
getObserverName in interface PamObserver

noteNewSettings

public void noteNewSettings()
Specified by:
noteNewSettings in interface PamObserver

setSampleRate

public void setSampleRate(float sampleRate,
                          boolean notify)
Description copied from interface: PamObserver
New sample rate

Specified by:
setSampleRate in interface PamObserver
notify - Notify other PamObservers and PamObservables in the chain.

masterClockUpdate

public void masterClockUpdate(long milliSeconds,
                              long sampleNumber)
Specified by:
masterClockUpdate in interface PamObserver

getRequiredDataHistory

public long getRequiredDataHistory(PamObservable o,
                                   java.lang.Object arg)
Specified by:
getRequiredDataHistory in interface PamObserver
Parameters:
o - PamObservable class requiring the data
arg - optional argument from PamObservable
Returns:
time in milliseconds requried by data held in PamObservable

getDataBlocks

public java.util.ArrayList<PamDataBlock> getDataBlocks()

getShipCoordinate

Coordinate3d getShipCoordinate()

getMousedDataUnit

public PamDataUnit getMousedDataUnit()
Gets a data unit currently hovered by the mouse. This only gets set if the mouse actually hovers and is then clicked.

Returns:
hovered data unit.

paintComponent

protected void paintComponent(java.awt.Graphics arg0)
Overrides:
paintComponent in class javax.swing.JComponent

removeObservable

public void removeObservable(PamObservable o)
Description copied from interface: PamObserver
called when an Observable (PamDataBlock) is removed from the system

Specified by:
removeObservable in interface PamObserver

getLastClickedMouseLatLong

public LatLong getLastClickedMouseLatLong()

createMapComment

protected void createMapComment(int x,
                                int y)

getMouseMotion

public SimpleMap.MapMouseMotionAdapter getMouseMotion()

getPanel

public javax.swing.JComponent getPanel()

addMouseAdapterToMapPanel

public void addMouseAdapterToMapPanel(java.awt.event.MouseAdapter mouseAdapter)

mapCanScroll

public void mapCanScroll(boolean b)

refreshDetectorList

public void refreshDetectorList()

newViewTimes

protected void newViewTimes()
Notification of new viewer times


newViewTime

protected void newViewTime()
Notification that the viewer slider has moved.


scrollRangeChanged

public void scrollRangeChanged(AbstractPamScroller absPamScroller)
Description copied from interface: PamScrollObserver
Notification sent when a scroller or slider changes it's data range

If data were loaded in a worker thread, this notification is sent after the new data have loaded.

Specified by:
scrollRangeChanged in interface PamScrollObserver
Parameters:
absPamScroller - reference to moved scroller.

scrollValueChanged

public void scrollValueChanged(AbstractPamScroller abstractPamScroller)
Description copied from interface: PamScrollObserver
Notification sent when a scroller or slider changes it's position

Specified by:
scrollValueChanged in interface PamScrollObserver
Parameters:
abstractPamScroller - reference to moved scroller

subscribeViewerBlocks

public boolean subscribeViewerBlocks()
Subscribes a variety of data blocks to the scroll bar.

Returns:
returns true if the list has changes, indicating that it's probably necessary to call loadData in the scroll manager to get new data.

getViewerScroller

public PamScrollSlider getViewerScroller()