schmitzm.geotools.gui
Class GeoPositionLabel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JLabel
                  extended by schmitzm.geotools.gui.GeoPositionLabel
All Implemented Interfaces:
MouseListener, MouseMotionListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, MouseInputListener, SwingConstants

public class GeoPositionLabel
extends JLabel
implements MouseInputListener

Diese Klasse stellt ein JLabel dar, in dem (2dimensionale) Geo-Koordinaten angezeigt werden. Dabei werden die Koordinaten auf eine bestimmte Anzahl an Nachkommastellen gerundet.
Die Klasse fungiert als MouseListener und MouseMotionListener und kann so direkt an ein SelectableXMapPane gekoppelt werden. Die Koordinaten-Darstellung im Label aktualisiert sich somit automatisch, sobald sich die Maus ueber die Karte bewegt. Wird ein Kartenbereich selektiert (gedrueckte linke Maustaste), werden neben der aktuellen Position auch die Koordinaten des Selektionsstart angezeigt.
Bemerke:
Eine Instanz des GeoPositionLabel muss dem SelectableXMapPane sowohl als MouseListener, als auch als MouseMotionListener hinzugefuegt werden. Ansonsten bekommt es nicht alle notwendigen Informationen mit!

Version:
1.0
Author:
Martin Schmitz (University of Bonn/Germany)
See Also:
setFractionDigits(int), getFractionDigits(), Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JLabel
JLabel.AccessibleJLabel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  DecimalFormat decForm
          Speichert das Format fuer die dargstellten Koordinaten
protected static ResourceProvider RESOURCE
           
protected  Point2D selStartCoord
          Speichert die Koordinaten, die in dem Moment aktuell sind, wenn die linke Maustaste gedruckt wird.
 
Fields inherited from class javax.swing.JLabel
labelFor
 
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 javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
GeoPositionLabel()
          Erzeugt ein neues Label.
GeoPositionLabel(int fracDigits)
          Erzeugt ein neues Label.
 
Method Summary
protected  String createGeoPositionString(Point2D actCoord, Point2D selStartCoord)
          Erzeugt den String, in dem die Koordinaten dargestellt werden.
protected  void displayCoordinates(MouseEvent e)
          Stellt die Koordinaten im Label dar, wenn es sich bei dem Event um ein GeoMouseEvent handelt oder das Event von einem SelectableXMapPane ausgeloest wurde.
 int getFractionDigits()
          Liefert die Anzahl an Nachkommastellen, die fuer die Koordinaten dargestellt werden
 void mouseClicked(MouseEvent e)
          Macht nichts.
 void mouseDragged(MouseEvent e)
          Wird aufgerufen, sobald die Maus bei gedrueckter Taste bewegt wird.
 void mouseEntered(MouseEvent e)
          Macht nichts.
 void mouseExited(MouseEvent e)
          Macht nichts.
 void mouseMoved(MouseEvent e)
          Wird aufgerufen, sobald die Maus bewegt wird.
 void mousePressed(MouseEvent e)
          Wird aufgerufen, wenn der Maus-Button gedrueckt wird.
 void mouseReleased(MouseEvent e)
          Wird aufgerufen, wenn der Maus-Button wieder losgelassen wird.
 void setFractionDigits(int fracDigits)
          Setzt die Anzahl an Nachkommastellen, die fuer die Koordinaten dargestellt werden
 
Methods inherited from class javax.swing.JLabel
checkHorizontalKey, checkVerticalKey, getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getUIClassID, getVerticalAlignment, getVerticalTextPosition, imageUpdate, paramString, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setDisplayedMnemonicIndex, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setText, setUI, setVerticalAlignment, setVerticalTextPosition, 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, 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, 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

decForm

protected final DecimalFormat decForm
Speichert das Format fuer die dargstellten Koordinaten


selStartCoord

protected Point2D selStartCoord
Speichert die Koordinaten, die in dem Moment aktuell sind, wenn die linke Maustaste gedruckt wird. Und zwar solange, bis die Taste wieder losgelassen wird. Danach wieder null.


RESOURCE

protected static ResourceProvider RESOURCE
Constructor Detail

GeoPositionLabel

public GeoPositionLabel()
Erzeugt ein neues Label. Die Koordinaten werden ohne Nachkommastellen dargestellt.


GeoPositionLabel

public GeoPositionLabel(int fracDigits)
Erzeugt ein neues Label.

Parameters:
fracDigits - Anzahl an Nachkommastellen, auf die die Koordinaten gerundet werden
Method Detail

displayCoordinates

protected void displayCoordinates(MouseEvent e)
Stellt die Koordinaten im Label dar, wenn es sich bei dem Event um ein GeoMouseEvent handelt oder das Event von einem SelectableXMapPane ausgeloest wurde.
Wird von mousePressed(MouseEvent), mouseMoved(MouseEvent) und mouseDragged(MouseEvent) aufgerufen.

See Also:
createGeoPositionString(Point2D,Point2D)

createGeoPositionString

protected String createGeoPositionString(Point2D actCoord,
                                         Point2D selStartCoord)
Erzeugt den String, in dem die Koordinaten dargestellt werden. Unterklassen koennen diese Methode ueberschreiben, um die Darstellung zu aendern. Die uebergebenen Koordinaten sind bereits entsprechend der gesetzten Nachkommastellen gerundet!

Parameters:
actCoord - aktuelle Geoposition des Mauszeigers
selStartCoord - Geoposition des Selektion-Startpunkt (null falls die aktuell kein Bereich selektiert wird)

setFractionDigits

public void setFractionDigits(int fracDigits)
Setzt die Anzahl an Nachkommastellen, die fuer die Koordinaten dargestellt werden

Parameters:
fracDigits - Anzahl an Nachkommastellen

getFractionDigits

public int getFractionDigits()
Liefert die Anzahl an Nachkommastellen, die fuer die Koordinaten dargestellt werden


mousePressed

public void mousePressed(MouseEvent e)
Wird aufgerufen, wenn der Maus-Button gedrueckt wird. Handelt es sich bei dem Event um ein GeoMouseEvent oder das Event von einem SelectableXMapPane ausgeloest wurde, werden die aktuellen Koordinaten in selStartCoord gespeichert.

Specified by:
mousePressed in interface MouseListener

mouseReleased

public void mouseReleased(MouseEvent e)
Wird aufgerufen, wenn der Maus-Button wieder losgelassen wird. Setzt selStartCoord auf null.

Specified by:
mouseReleased in interface MouseListener

mouseClicked

public void mouseClicked(MouseEvent e)
Macht nichts.

Specified by:
mouseClicked in interface MouseListener

mouseMoved

public void mouseMoved(MouseEvent e)
Wird aufgerufen, sobald die Maus bewegt wird. Stellt die Koordinaten im Label dar, wenn es sich bei dem Event um ein GeoMouseEvent handelt oder das Event von einem SelectableXMapPane ausgeloest wurde.

Specified by:
mouseMoved in interface MouseMotionListener

mouseDragged

public void mouseDragged(MouseEvent e)
Wird aufgerufen, sobald die Maus bei gedrueckter Taste bewegt wird. Stellt die Koordinaten im Label dar, wenn es sich bei dem Event um ein GeoMouseEvent handelt oder das Event von einem SelectableXMapPane ausgeloest wurde.

Specified by:
mouseDragged in interface MouseMotionListener

mouseEntered

public void mouseEntered(MouseEvent e)
Macht nichts.

Specified by:
mouseEntered in interface MouseListener

mouseExited

public void mouseExited(MouseEvent e)
Macht nichts.

Specified by:
mouseExited in interface MouseListener