|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
org.openstreetmap.josm.gui.NavigatableComponent
org.openstreetmap.josm.gui.MapView
public class MapView
This is a component used in the MapFrame
for browsing the map. It use is to
provide the MapMode's enough capabilities to operate.
MapView
holds meta-data about the data set currently displayed, as scale level,
center point viewed, what scrolling mode or editing mode is selected or with
what projection the map is viewed etc..
MapView
is able to administrate several layers.
Nested Class Summary | |
---|---|
static interface |
MapView.EditLayerChangeListener
|
static interface |
MapView.LayerChangeListener
Interface to notify listeners of a layer change. |
Nested classes/interfaces inherited from class org.openstreetmap.josm.gui.NavigatableComponent |
---|
NavigatableComponent.SystemOfMeasurement, NavigatableComponent.ZoomChangeListener |
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 | |
---|---|
private Layer |
activeLayer
The layer from the layers list that is currently active. |
private Layer |
changedLayer
|
private OsmDataLayer |
editLayer
|
private static java.util.concurrent.CopyOnWriteArrayList<MapView.EditLayerChangeListener> |
editLayerChangeListeners
|
private java.awt.Rectangle |
lastClipBounds
|
java.awt.event.MouseEvent |
lastMEvent
The last event performed by mouse. |
private int |
lastViewID
|
private static java.util.concurrent.CopyOnWriteArrayList<MapView.LayerChangeListener> |
layerChangeListeners
the layer listeners |
private java.util.List<Layer> |
layers
A list of all layers currently loaded. |
private MapMover |
mapMover
|
private java.util.List<Layer> |
nonChangedLayers
|
private java.awt.image.BufferedImage |
nonChangedLayersBuffer
|
private java.awt.image.BufferedImage |
offscreenBuffer
|
private boolean |
paintPreferencesChanged
|
PlayHeadMarker |
playHeadMarker
The play head marker: there is only one of these so it isn't in any specific layer |
private SelectionChangedListener |
repaintSelectionChangedListener
|
private java.util.LinkedList<MapViewPaintable> |
temporaryLayers
|
boolean |
viewportFollowing
|
private boolean |
virtualNodesEnabled
|
Fields inherited from class org.openstreetmap.josm.gui.NavigatableComponent |
---|
center, CHINESE_SOM, IMPERIAL_SOM, METRIC_SOM, PROP_SNAP_DISTANCE, PROPNAME_CENTER, PROPNAME_SCALE, SYSTEMS_OF_MEASUREMENT |
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 | |
---|---|
MapView(javax.swing.JPanel contentPane)
Constructs a new MapView . |
Method Summary | ||
---|---|---|
static void |
addEditLayerChangeListener(MapView.EditLayerChangeListener listener)
Adds an edit layer change listener |
|
static void |
addEditLayerChangeListener(MapView.EditLayerChangeListener listener,
boolean initialFire)
Adds an edit layer change listener |
|
protected void |
addGpxLayer(GpxLayer layer)
Adds a GPX layer. |
|
void |
addLayer(Layer layer)
Add a layer to the current MapView. |
|
static void |
addLayerChangeListener(MapView.LayerChangeListener listener)
Adds a layer change listener |
|
boolean |
addTemporaryLayer(MapViewPaintable mvp)
|
|
void |
destroy()
|
|
protected Layer |
determineNextActiveLayer(java.util.List<Layer> layersList)
Determines the next active data layer according to the following rules: if there is at least one OsmDataLayer the first one
becomes active
otherwise, the top most layer of any type becomes active
|
|
protected static void |
fireActiveLayerChanged(Layer oldLayer,
Layer newLayer)
|
|
protected static void |
fireEditLayerChanged(OsmDataLayer oldLayer,
OsmDataLayer newLayer)
|
|
protected static void |
fireLayerAdded(Layer newLayer)
|
|
protected static void |
fireLayerRemoved(Layer layer)
|
|
Layer |
getActiveLayer()
Replies the currently active layer |
|
java.util.Collection<Layer> |
getAllLayers()
|
|
java.util.List<Layer> |
getAllLayersAsList()
|
|
protected DataSet |
getCurrentDataSet()
|
|
OsmDataLayer |
getEditLayer()
Replies the current edit layer, if any |
|
int |
getLayerPos(Layer layer)
|
|
|
getLayersOfType(java.lang.Class<T> ofType)
Replies an unmodifiable list of layers of a certain type. |
|
int |
getNumLayers()
Replies the number of layers managed by this mav view |
|
protected java.util.List<Layer> |
getVisibleLayersInZOrder()
Creates a list of the visible layers in Z-Order, the layer with the lowest Z-Order first, layer with the highest Z-Order last. |
|
boolean |
hasLayer(Layer layer)
replies true if the list of layers managed by this map view contain layer |
|
boolean |
hasLayers()
Replies true if there is at least one layer in this map view |
|
boolean |
isActiveLayerDrawable()
Replies true if the active layer is drawable. |
|
boolean |
isActiveLayerVisible()
Replies true if the active layer is visible. |
|
boolean |
isVirtualNodesEnabled()
|
|
void |
moveLayer(Layer layer,
int pos)
Moves the layer to the given new position. |
|
void |
paint(java.awt.Graphics g)
Draw the component. |
|
private void |
paintLayer(Layer layer,
java.awt.Graphics2D g,
Bounds box)
|
|
void |
preferenceChanged(Preferences.PreferenceChangeEvent e)
|
|
void |
propertyChange(java.beans.PropertyChangeEvent evt)
|
|
void |
recalculateCenterScale(BoundingXYVisitor box)
Set the new dimension to the view. |
|
protected void |
refreshTitle()
|
|
static void |
removeEditLayerChangeListener(MapView.EditLayerChangeListener listener)
|
|
void |
removeLayer(Layer layer)
Remove the layer from the mapview. |
|
static void |
removeLayerChangeListener(MapView.LayerChangeListener listener)
Removes a layer change listener |
|
boolean |
removeTemporaryLayer(MapViewPaintable mvp)
|
|
void |
setActiveLayer(Layer layer)
Sets the active layer to layer . |
|
private void |
setActiveLayer(Layer layer,
boolean setEditLayer)
|
|
private void |
setEditLayer(java.util.List<Layer> layersList)
|
|
void |
setVirtualNodesEnabled(boolean enabled)
|
|
boolean |
zoomToDataSetBoundingBox(DataSet ds)
Tries to zoom to the download boundingbox[es] of the current edit layer (aka OsmDataLayer ). |
Methods inherited from class javax.swing.JComponent |
---|
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, 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, 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 |
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, 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, transferFocusBackward, transferFocusUpCycle |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public boolean viewportFollowing
private static final java.util.concurrent.CopyOnWriteArrayList<MapView.LayerChangeListener> layerChangeListeners
private static final java.util.concurrent.CopyOnWriteArrayList<MapView.EditLayerChangeListener> editLayerChangeListeners
private final java.util.List<Layer> layers
public PlayHeadMarker playHeadMarker
private Layer activeLayer
private OsmDataLayer editLayer
public java.awt.event.MouseEvent lastMEvent
private java.util.LinkedList<MapViewPaintable> temporaryLayers
private java.awt.image.BufferedImage nonChangedLayersBuffer
private java.awt.image.BufferedImage offscreenBuffer
private final java.util.List<Layer> nonChangedLayers
private Layer changedLayer
private int lastViewID
private boolean paintPreferencesChanged
private java.awt.Rectangle lastClipBounds
private MapMover mapMover
private boolean virtualNodesEnabled
private SelectionChangedListener repaintSelectionChangedListener
Constructor Detail |
---|
public MapView(javax.swing.JPanel contentPane)
MapView
.
contentPane
- The content pane used to register shortcuts in its InputMap
and ActionMap
Method Detail |
---|
public static void removeLayerChangeListener(MapView.LayerChangeListener listener)
listener
- the listener. Ignored if null or already registered.public static void removeEditLayerChangeListener(MapView.EditLayerChangeListener listener)
public static void addLayerChangeListener(MapView.LayerChangeListener listener)
listener
- the listener. Ignored if null or already registered.public static void addEditLayerChangeListener(MapView.EditLayerChangeListener listener, boolean initialFire)
listener
- the listener. Ignored if null or already registered.initialFire
- Fire an edit-layer-changed-event right after adding
the listener in case there is an edit layer presentpublic static void addEditLayerChangeListener(MapView.EditLayerChangeListener listener)
listener
- the listener. Ignored if null or already registered.protected static void fireActiveLayerChanged(Layer oldLayer, Layer newLayer)
protected static void fireLayerAdded(Layer newLayer)
protected static void fireLayerRemoved(Layer layer)
protected static void fireEditLayerChanged(OsmDataLayer oldLayer, OsmDataLayer newLayer)
protected void addGpxLayer(GpxLayer layer)
layer
- the GPX layerpublic void addLayer(Layer layer)
layer
- The layer to addprotected DataSet getCurrentDataSet()
getCurrentDataSet
in class NavigatableComponent
public boolean isActiveLayerDrawable()
public boolean isActiveLayerVisible()
protected Layer determineNextActiveLayer(java.util.List<Layer> layersList)
OsmDataLayer
the first one
becomes active
public void removeLayer(Layer layer)
layer
- The layer to removepublic void setVirtualNodesEnabled(boolean enabled)
public boolean isVirtualNodesEnabled()
public void moveLayer(Layer layer, int pos)
layer
- The layer to movepos
- The new position of the layerpublic int getLayerPos(Layer layer)
protected java.util.List<Layer> getVisibleLayersInZOrder()
private void paintLayer(Layer layer, java.awt.Graphics2D g, Bounds box)
public void paint(java.awt.Graphics g)
paint
in class javax.swing.JComponent
public void recalculateCenterScale(BoundingXYVisitor box)
public java.util.Collection<Layer> getAllLayers()
public java.util.List<Layer> getAllLayersAsList()
public <T> java.util.List<T> getLayersOfType(java.lang.Class<T> ofType)
ListwmsLayers = getLayersOfType(WMSLayer.class);
public int getNumLayers()
public boolean hasLayers()
private void setEditLayer(java.util.List<Layer> layersList)
public void setActiveLayer(Layer layer)
layer
. If layer
is an instance
of OsmDataLayer
also sets editLayer
to layer
.
layer
- the layer to be activate; must be one of the layers in the list of layers
java.lang.IllegalArgumentException
- thrown if layer is not in the lis of layersprivate void setActiveLayer(Layer layer, boolean setEditLayer)
public Layer getActiveLayer()
public OsmDataLayer getEditLayer()
public boolean hasLayer(Layer layer)
layer
- the layer
public boolean zoomToDataSetBoundingBox(DataSet ds)
OsmDataLayer
). If the edit layer has multiple download bounding
boxes it zooms to a large virtual bounding box containing all smaller ones.
true
if a zoom operation has been performedpublic boolean addTemporaryLayer(MapViewPaintable mvp)
public boolean removeTemporaryLayer(MapViewPaintable mvp)
public void propertyChange(java.beans.PropertyChangeEvent evt)
propertyChange
in interface java.beans.PropertyChangeListener
protected void refreshTitle()
public void preferenceChanged(Preferences.PreferenceChangeEvent e)
preferenceChanged
in interface Preferences.PreferenceChangedListener
public void destroy()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |