public class MapPane extends javax.swing.JLayeredPane implements View.ViewChangeListener, java.awt.print.Printable, GenericNetDisplay.ResolutionListener, DOTManager.DOTChangeListener
Die Kartenansicht der Kartendarstellung.
Ein MapPane steht für die Kartenansicht der GND. Um die einzelnen Layer darzustellen, ist MapPane von JLayeredPane abgeleitet. Jeder nicht-leere Layer des JLayeredPane enthält genau eine Komponente der Klasse MapPane.LayerPanel
, das die Objekte eines GND-Layers darstellt.
Modifier and Type | Class and Description |
---|---|
private class |
MapPane.LayerPanel |
static interface |
MapPane.MapScaleListener
Ein Interface für Listener, die an Maßstabs-Änderungen der Kartenansicht interessiert sind.
|
javax.swing.JLayeredPane.AccessibleJLayeredPane
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
private boolean |
_antialising |
private DisplayObjectManager |
_displayObjectManager |
private GenericNetDisplay |
_gnd |
private boolean |
_isTooltipOn |
private java.lang.Double |
_mapScale |
private java.util.List<MapPane.MapScaleListener> |
_mapScaleListeners |
private java.awt.geom.AffineTransform |
_mapTransform |
static java.lang.String |
_newline |
private java.util.Set<DisplayObject> |
_selectedDisplayObjects |
private boolean |
_showNothing |
private View |
_view |
private double |
_zoomScale |
private double |
_zoomTranslateX |
private double |
_zoomTranslateY |
DEFAULT_LAYER, DRAG_LAYER, FRAME_CONTENT_LAYER, LAYER_PROPERTY, MODAL_LAYER, PALETTE_LAYER, POPUP_LAYER
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Constructor and Description |
---|
MapPane(GenericNetDisplay gnd,
View view)
Konstruiert eine neue Kartenansicht für das übergebene GenericNetDisplay mit der übergebenen Ansicht.
|
Modifier and Type | Method and Description |
---|---|
private void |
addListeners() |
void |
addMapScaleListeners(java.util.Collection<MapPane.MapScaleListener> listeners)
Fügt die übergebenen Objekte der Menge der auf Änderungen des Maßstabs angemeldeten Objekte hinzu.
|
private void |
addToSelection(DisplayObject displayObject) |
void |
clearEverything()
Gibt alles frei, so dass der Garbage-Collector zuschlagen kann.
|
void |
clearSelection() |
private void |
determineCurrentScale() |
static void |
disableDoubleBuffering(java.awt.Component c)
Methode zur besseren Auflösung beim Drucken
|
void |
displayObjectTypeAdded(DisplayObjectType displayObjectType)
Diese Methode wird aufgerufen, wenn der übergebene Darstellungstyp hinzugefügt wurde.
|
void |
displayObjectTypeChanged(DisplayObjectType displayObjectType)
Diese Methode wird aufgerufen, wenn der übergebene Darstellungstyp geändert wurde.
|
void |
displayObjectTypeRemoved(java.lang.String displayObjectTypeName)
Diese Methode wird aufgerufen, wenn der genannte Darstellungstyp gelöscht wurde.
|
private void |
drawScaling(java.awt.Graphics2D g,
double pixelPerMeter) |
static void |
enableDoubleBuffering(java.awt.Component c)
Methode zum Zurücksetzen der Auflösung für die Ausgabe in der Oberfläche
|
void |
focusOnObject(SystemObject systemObject) |
java.awt.geom.Point2D |
getCenterPoint() |
private java.util.Set<DisplayObject> |
getDisplayObjectsForSystemObject(SystemObject systemObject) |
GenericNetDisplay |
getGnd() |
java.lang.Double |
getMapScale()
Gibt den aktuellen Maßstab zurück.
|
java.util.Collection<SystemObject> |
getSelectedSystemObjects()
Gibt die Menge der aktuell in der Kartenansicht selektierten Objekte zurück.
|
java.lang.String |
getToolTipText(java.awt.event.MouseEvent e)
Erzeugt den Tooltipp auf der Kartenansicht.
|
java.awt.Rectangle |
getUTMBounds() |
private boolean |
getUTMPoint(java.awt.Point p,
java.awt.Point utmP) |
private java.util.Set<SystemObject> |
getVisibleObjects() |
void |
init()
Der Konstruktor dient der Klasses GenericNetDisplay dazu, das MapPane schon anordnen zu können.
|
private void |
initAffineMapTransform() |
private void |
initALayerPanel(ViewEntry entry,
int i,
javax.swing.JProgressBar progressBar) |
private void |
initTheLayerPanels() |
boolean |
isAntialising()
Gibt
true zurück, wenn die Kartenansicht mit Anti-Aliasing gezeichnet wird. |
boolean |
isTooltipOn()
Gibt
true zurück, falls der Tooltipp auf der Kartenansicht aktiviert ist. |
double |
meterProPixel()
Diese Methode berechnet den Maßstab der Kartenansicht in Metern pro Pixel.
|
private void |
modifyAffineTransform(java.awt.geom.AffineTransform affinTransform) |
protected void |
paintComponent(java.awt.Graphics g) |
int |
print(java.awt.Graphics g,
java.awt.print.PageFormat pageFormat,
int pageIndex) |
void |
redraw() |
void |
redrawObject(DisplayObject displayObject) |
private void |
removeAllMapScaleListeners() |
void |
removeMapScaleListeners(java.util.Collection<MapPane.MapScaleListener> listeners)
Entfernt die übergebenen Objekte aus der Menge der auf Änderungen des Maßstabs angemeldeten Objekte.
|
void |
resolutionChanged(java.lang.Double newValue,
java.lang.Double oldValue)
Diese Methode wird aufgerufen, wenn die Auflösung geändert wird.
|
void |
selectObject(SystemObject systemObject) |
void |
setAntialising(boolean antialising)
Setzt die interne Variable, die bestimmt, ob die Kartenansicht mit Anti-Aliasing gezeichnet wird.
|
private void |
setMapScale(double mapScale)
Aktualisiert den Maßstab der Kartenansicht, informiert alle MapScaleListeners und veranlaßt ein Neuzeichnen der Kartenansicht.
|
private void |
setSelection(java.util.Collection<DisplayObject> displayObjects) |
private void |
setSelection(DisplayObject displayObject) |
void |
setTooltip(boolean tooltip)
Schaltet den Tooltipp auf der Kartenansicht ab oder an.
|
private java.awt.Rectangle |
transformedRectangle(java.awt.Rectangle rectangle) |
void |
updateDisplayObject(DisplayObject displayObject)
Veranlaßt eine Aktualisierung der Darstellung des übergebenen DisplayObjects.
|
void |
viewEntriesSwitched(View view,
int i,
int j)
Die Layer an der i-ten und j-ten Stelle der Ansicht wurden miteinander vertauscht.
|
void |
viewEntryChanged(View view,
int i)
Der Layer an der i-ten Stelle der Ansicht wurde geändert.
|
void |
viewEntryInserted(View view,
int newIndex)
Der Ansicht wurde ein Layer am Ende angehängt.
|
void |
viewEntryRemoved(View view,
int i)
Der Layer an der i-ten Stelle der Ansicht wurde gelöscht.
|
private void |
visibleObjectsChanged() |
addImpl, getAccessibleContext, getComponentCountInLayer, getComponentsInLayer, getComponentToLayer, getIndexOf, getLayer, getLayer, getLayeredPaneAbove, getObjectForLayer, getPosition, highestLayer, insertIndexForLayer, isOptimizedDrawingEnabled, lowestLayer, moveToBack, moveToFront, paint, paramString, putLayer, remove, removeAll, setLayer, setLayer, setPosition
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, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, 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, updateUI
add, add, add, add, add, addContainerListener, 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, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
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, 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
private final GenericNetDisplay _gnd
private final View _view
private final DisplayObjectManager _displayObjectManager
private final java.util.Set<DisplayObject> _selectedDisplayObjects
private final java.util.List<MapPane.MapScaleListener> _mapScaleListeners
private java.awt.geom.AffineTransform _mapTransform
private java.lang.Double _mapScale
private double _zoomTranslateX
private double _zoomTranslateY
private double _zoomScale
private boolean _antialising
private boolean _isTooltipOn
private boolean _showNothing
public static final java.lang.String _newline
public MapPane(GenericNetDisplay gnd, View view)
Konstruiert eine neue Kartenansicht für das übergebene GenericNetDisplay mit der übergebenen Ansicht. Das Objekt wird zunächst aber nur konstruiert, die eigentliche Initialisierung muss mit init()
noch ausgeführt werden.
gnd
- die Netzdarstellungview
- die aktuelle Ansichtpublic void init()
Der Konstruktor dient der Klasses GenericNetDisplay dazu, das MapPane schon anordnen zu können. In der folgenden init-Methode und ihren Initialisierungen wird JComponent.getBounds() aufgerufen, was erst sinnvoll ist, wenn das MapPane schon in im GenericNetDisplay mit pack() gepackt wurde.
public java.awt.geom.Point2D getCenterPoint()
public GenericNetDisplay getGnd()
public void redraw()
public java.awt.Rectangle getUTMBounds()
private void initALayerPanel(ViewEntry entry, int i, javax.swing.JProgressBar progressBar)
private void initTheLayerPanels()
private void initAffineMapTransform()
public void viewEntriesSwitched(View view, int i, int j)
View.ViewChangeListener
Die Layer an der i-ten und j-ten Stelle der Ansicht wurden miteinander vertauscht.
viewEntriesSwitched
in interface View.ViewChangeListener
view
- die Ansichti
- ein Indexj
- ein Indexprivate void visibleObjectsChanged()
private java.util.Set<SystemObject> getVisibleObjects()
public void selectObject(SystemObject systemObject)
public void focusOnObject(SystemObject systemObject)
private java.util.Set<DisplayObject> getDisplayObjectsForSystemObject(SystemObject systemObject)
public void viewEntryInserted(View view, int newIndex)
View.ViewChangeListener
Der Ansicht wurde ein Layer am Ende angehängt.
viewEntryInserted
in interface View.ViewChangeListener
view
- die Ansichtpublic void viewEntryChanged(View view, int i)
View.ViewChangeListener
Der Layer an der i-ten Stelle der Ansicht wurde geändert.
viewEntryChanged
in interface View.ViewChangeListener
view
- die Ansichti
- ein Indexpublic void viewEntryRemoved(View view, int i)
View.ViewChangeListener
Der Layer an der i-ten Stelle der Ansicht wurde gelöscht.
viewEntryRemoved
in interface View.ViewChangeListener
view
- die Ansichti
- ein Indexpublic int print(java.awt.Graphics g, java.awt.print.PageFormat pageFormat, int pageIndex) throws java.awt.print.PrinterException
print
in interface java.awt.print.Printable
java.awt.print.PrinterException
public static void disableDoubleBuffering(java.awt.Component c)
Methode zur besseren Auflösung beim Drucken
c
- eine Componentpublic static void enableDoubleBuffering(java.awt.Component c)
Methode zum Zurücksetzen der Auflösung für die Ausgabe in der Oberfläche
c
- eine Componentpublic double meterProPixel()
Diese Methode berechnet den Maßstab der Kartenansicht in Metern pro Pixel.
private void determineCurrentScale()
protected void paintComponent(java.awt.Graphics g)
paintComponent
in class javax.swing.JComponent
private void drawScaling(java.awt.Graphics2D g, double pixelPerMeter)
private void addToSelection(DisplayObject displayObject)
public void clearSelection()
private void setSelection(DisplayObject displayObject)
private void setSelection(java.util.Collection<DisplayObject> displayObjects)
private void addListeners()
public void redrawObject(DisplayObject displayObject)
private void setMapScale(double mapScale)
Aktualisiert den Maßstab der Kartenansicht, informiert alle MapScaleListeners und veranlaßt ein Neuzeichnen der Kartenansicht.
scale
- der neue Maßstabsfaktorpublic java.lang.Double getMapScale()
Gibt den aktuellen Maßstab zurück.
public void addMapScaleListeners(java.util.Collection<MapPane.MapScaleListener> listeners)
Fügt die übergebenen Objekte der Menge der auf Änderungen des Maßstabs angemeldeten Objekte hinzu.
listeners
- die neuen Listenerpublic void removeMapScaleListeners(java.util.Collection<MapPane.MapScaleListener> listeners)
Entfernt die übergebenen Objekte aus der Menge der auf Änderungen des Maßstabs angemeldeten Objekte.
listeners
- die zu löschenden Listenerprivate void removeAllMapScaleListeners()
private boolean getUTMPoint(java.awt.Point p, java.awt.Point utmP)
public java.lang.String getToolTipText(java.awt.event.MouseEvent e)
Erzeugt den Tooltipp auf der Kartenansicht.
getToolTipText
in class javax.swing.JComponent
e
- der Mouse-Eventprivate void modifyAffineTransform(java.awt.geom.AffineTransform affinTransform)
private java.awt.Rectangle transformedRectangle(java.awt.Rectangle rectangle)
public boolean isAntialising()
Gibt true
zurück, wenn die Kartenansicht mit Anti-Aliasing gezeichnet wird.
true
genau dann, wenn die Kartenansicht mit Anti-Aliasing gezeichnet wirdpublic void setAntialising(boolean antialising)
Setzt die interne Variable, die bestimmt, ob die Kartenansicht mit Anti-Aliasing gezeichnet wird.
antialising
- die neue Einstellung von Anti-Aliasingpublic boolean isTooltipOn()
Gibt true
zurück, falls der Tooltipp auf der Kartenansicht aktiviert ist.
true
genau dann, wenn der Tooltipp auf der Kartenansicht aktiviert istpublic void setTooltip(boolean tooltip)
Schaltet den Tooltipp auf der Kartenansicht ab oder an.
tooltip
- der neue Wert für die Tooltipp-Aktivitätpublic void updateDisplayObject(DisplayObject displayObject)
Veranlaßt eine Aktualisierung der Darstellung des übergebenen DisplayObjects.
displayObject
- das DisplayObjectpublic void resolutionChanged(java.lang.Double newValue, java.lang.Double oldValue)
GenericNetDisplay.ResolutionListener
Diese Methode wird aufgerufen, wenn die Auflösung geändert wird. Aufgrund der Übergabe des alten und neuen Wertes können auch relative Änderungen vollzogen werden.
resolutionChanged
in interface GenericNetDisplay.ResolutionListener
newValue
- die neue BildschirmauflösungoldValue
- die alte Bildschirmauflösungpublic java.util.Collection<SystemObject> getSelectedSystemObjects()
Gibt die Menge der aktuell in der Kartenansicht selektierten Objekte zurück.
public void clearEverything()
Gibt alles frei, so dass der Garbage-Collector zuschlagen kann.
public void displayObjectTypeAdded(DisplayObjectType displayObjectType)
DOTManager.DOTChangeListener
Diese Methode wird aufgerufen, wenn der übergebene Darstellungstyp hinzugefügt wurde.
displayObjectTypeAdded
in interface DOTManager.DOTChangeListener
displayObjectType
- ein Darstellungstyppublic void displayObjectTypeChanged(DisplayObjectType displayObjectType)
DOTManager.DOTChangeListener
Diese Methode wird aufgerufen, wenn der übergebene Darstellungstyp geändert wurde.
displayObjectTypeChanged
in interface DOTManager.DOTChangeListener
displayObjectType
- ein Darstellungstyppublic void displayObjectTypeRemoved(java.lang.String displayObjectTypeName)
DOTManager.DOTChangeListener
Diese Methode wird aufgerufen, wenn der genannte Darstellungstyp gelöscht wurde.
displayObjectTypeRemoved
in interface DOTManager.DOTChangeListener