org.openstreetmap.josm.gui
Class MapStatus

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 org.openstreetmap.josm.gui.MapStatus
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, Helpful

public class MapStatus
extends javax.swing.JPanel
implements Helpful

A component that manages some status information display about the map. It keeps a status line below the map up to date and displays some tooltip information if the user hold the mouse long enough at some point. All this is done in background to not disturb other processes. The background thread does not alter any data of the map (read only thread). Also it is rather fail safe. In case of some error in the data, it just does nothing instead of whining and complaining.

See Also:
Serialized Form

Nested Class Summary
 class MapStatus.BackgroundProgressMonitor
           
private  class MapStatus.Collector
          The collector class that waits for notification and then update the display objects.
(package private) static class MapStatus.ImageLabel
          A small user interface component that consists of an image label and a fixed text content to the right of the image.
(package private) static class MapStatus.MouseState
          Everything, the collector is interested of.
private static class MapStatus.StatusTextHistory
           
 
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)  MapStatus.ImageLabel angleText
           
private  java.awt.event.AWTEventListener awtListener
           
(package private)  MapStatus.Collector collector
           
(package private)  MapStatus.ImageLabel distText
           
(package private)  MapStatus.ImageLabel headingText
           
(package private)  javax.swing.JTextField helpText
           
private  java.awt.event.KeyAdapter keyAdapter
           
(package private)  MapStatus.ImageLabel latText
           
(package private)  MapStatus.ImageLabel lonText
           
private  java.awt.event.MouseMotionListener mouseMotionListener
           
(package private)  MapStatus.MouseState mouseState
          The last sent mouse movement event.
(package private)  MapView mv
          The MapView this status belongs to.
(package private)  MapStatus.ImageLabel nameText
           
(package private)  javax.swing.JProgressBar progressBar
           
 MapStatus.BackgroundProgressMonitor progressMonitor
           
private  java.util.List<MapStatus.StatusTextHistory> statusText
           
 java.lang.Thread thread
          This is the thread that runs in the background and collects the information displayed.
 
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
MapStatus(MapFrame mapFrame)
          Construct a new MapStatus and attach it to the map view.
 
Method Summary
 void activateAnglePanel(boolean activeFlag)
           
 void addMouseListener(java.awt.event.MouseListener ml)
           
 javax.swing.JPanel getAnglePanel()
           
 java.lang.String helpTopic()
           
private  void registerListeners()
           
 void resetHelpText(java.lang.Object id)
           
 void setAngle(double a)
           
 void setDist(double dist)
           
 void setHeading(double h)
           
 void setHelpText(java.lang.Object id, java.lang.String text)
           
 void setHelpText(java.lang.String t)
           
private  void unregisterListeners()
           
 
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, paintComponent, 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, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, 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, 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, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mv

final MapView mv
The MapView this status belongs to.


collector

final MapStatus.Collector collector

lonText

final MapStatus.ImageLabel lonText

nameText

final MapStatus.ImageLabel nameText

helpText

final javax.swing.JTextField helpText

latText

final MapStatus.ImageLabel latText

angleText

final MapStatus.ImageLabel angleText

headingText

final MapStatus.ImageLabel headingText

distText

final MapStatus.ImageLabel distText

progressBar

final javax.swing.JProgressBar progressBar

progressMonitor

public final MapStatus.BackgroundProgressMonitor progressMonitor

thread

public java.lang.Thread thread
This is the thread that runs in the background and collects the information displayed. It gets destroyed by MapFrame.java/destroy() when the MapFrame itself is destroyed.


statusText

private final java.util.List<MapStatus.StatusTextHistory> statusText

mouseState

MapStatus.MouseState mouseState
The last sent mouse movement event.


awtListener

private java.awt.event.AWTEventListener awtListener

mouseMotionListener

private java.awt.event.MouseMotionListener mouseMotionListener

keyAdapter

private java.awt.event.KeyAdapter keyAdapter
Constructor Detail

MapStatus

public MapStatus(MapFrame mapFrame)
Construct a new MapStatus and attach it to the map view.

Parameters:
mapFrame - The MapFrame the status line is part of.
Method Detail

registerListeners

private void registerListeners()

unregisterListeners

private void unregisterListeners()

getAnglePanel

public javax.swing.JPanel getAnglePanel()

helpTopic

public java.lang.String helpTopic()
Specified by:
helpTopic in interface Helpful

addMouseListener

public void addMouseListener(java.awt.event.MouseListener ml)
Overrides:
addMouseListener in class java.awt.Component

setHelpText

public void setHelpText(java.lang.String t)

setHelpText

public void setHelpText(java.lang.Object id,
                        java.lang.String text)

resetHelpText

public void resetHelpText(java.lang.Object id)

setAngle

public void setAngle(double a)

setHeading

public void setHeading(double h)

setDist

public void setDist(double dist)

activateAnglePanel

public void activateAnglePanel(boolean activeFlag)


JOSM