org.openstreetmap.josm.gui.dialogs
Class LayerListDialog

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.dialogs.ToggleDialog
                      extended by org.openstreetmap.josm.gui.dialogs.LayerListDialog
All Implemented Interfaces:
java.awt.event.AWTEventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, Helpful, ShowHideButtonListener

public class LayerListDialog
extends ToggleDialog

This is a toggle dialog which displays the list of layers. Actions allow to change the ordering of the layers, to hide/show layers, to activate layers, and to delete layers.

See Also:
Serialized Form

Nested Class Summary
 class LayerListDialog.ActivateLayerAction
          The action to activate the currently selected layer
private static class LayerListDialog.ActiveLayerCellRenderer
           
private static class LayerListDialog.ActiveLayerCheckBox
           
 class LayerListDialog.DeleteLayerAction
          The action to delete the currently selected layer
 class LayerListDialog.DuplicateAction
          The action to merge the currently selected layer into another layer.
protected static interface LayerListDialog.IEnabledStateUpdating
           
(package private) static class LayerListDialog.LayerList
           
 class LayerListDialog.LayerListModel
          The layer list model.
static interface LayerListDialog.LayerListModelListener
          Observer interface to be implemented by views using LayerListDialog.LayerListModel
private static class LayerListDialog.LayerNameCellEditor
           
private  class LayerListDialog.LayerNameCellRenderer
           
 class LayerListDialog.LayerOpacityAction
           
private static class LayerListDialog.LayerVisibleCellEditor
           
private static class LayerListDialog.LayerVisibleCellRenderer
           
private static class LayerListDialog.LayerVisibleCheckBox
           
 class LayerListDialog.MergeAction
          The action to merge the currently selected layer into another layer.
(package private)  class LayerListDialog.MoveDownAction
          The action to move down the currently selected entries in the list.
(package private)  class LayerListDialog.MoveUpAction
          The action to move up the currently selected entries in the list.
(package private)  class LayerListDialog.PopupMenuHandler
           
 class LayerListDialog.ShowHideLayerAction
           
private  class LayerListDialog.ToggleLayerIndexVisibility
          stores which layer index to toggle and executes the ShowHide action if the layer is present
 
Nested classes/interfaces inherited from class org.openstreetmap.josm.gui.dialogs.ToggleDialog
ToggleDialog.ButtonHiddingType, ToggleDialog.TitleBar, ToggleDialog.ToggleDialogAction
 
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)  LayerListDialog.ActivateLayerAction activateLayerAction
           
private static LayerListDialog instance
          the unique instance of the dialog
private  LayerListDialog.LayerList layerList
          the list of layers (technically its a JTable, but appears like a list)
private  LayerListDialog.LayerListModel model
          the model for the layer list
private  SideButton opacityButton
           
private  javax.swing.DefaultListSelectionModel selectionModel
          the selection model
(package private)  LayerListDialog.ShowHideLayerAction showHideLayerAction
           
private  LayerListDialog.ToggleLayerIndexVisibility[] visibilityToggleActions
           
private  Shortcut[] visibilityToggleShortcuts
           
 
Fields inherited from class org.openstreetmap.josm.gui.dialogs.ToggleDialog
button, buttonHiding, detachedDialog, dialogsPanel, isCollapsed, isDocked, isShowing, name, preferencePrefix, titleBar, toggleAction, windowMenuItem
 
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
protected LayerListDialog(MapFrame mapFrame)
          Create an layer list and attach it to the given mapView.
 
Method Summary
protected  void adaptTo(LayerListDialog.IEnabledStateUpdating listener, LayerListDialog.LayerListModel listModel)
          Wires listener to listModel in such a way, that listener receives a LayerListDialog.IEnabledStateUpdating.updateEnabledState() on every ListDataEvent.
protected  void adaptTo(LayerListDialog.IEnabledStateUpdating listener, javax.swing.ListSelectionModel listSelectionModel)
          Wires listener to listSelectionModel in such a way, that listener receives a LayerListDialog.IEnabledStateUpdating.updateEnabledState() on every ListSelectionEvent.
 LayerListDialog.ActivateLayerAction createActivateLayerAction(Layer layer)
          Creates a LayerListDialog.ActivateLayerAction for layer in the context of this LayerListDialog.
 LayerListDialog.DeleteLayerAction createDeleteLayerAction()
          Creates a LayerListDialog.DeleteLayerAction for layer in the context of this LayerListDialog.
static void createInstance(MapFrame mapFrame)
          Creates the instance of the dialog.
 LayerListDialog.MergeAction createMergeLayerAction(Layer layer)
          Creates a MergeLayerAction for layer in the context of this LayerListDialog.
 LayerListDialog.ShowHideLayerAction createShowHideLayerAction()
          Creates a LayerListDialog.ShowHideLayerAction for layer in the context of this LayerListDialog.
private  void createVisibilityToggleShortcuts()
          registers (shortcut to toggle right hand side toggle dialogs)+(number keys) shortcuts to toggle the visibility of the first ten layers.
 void destroy()
           
static LayerListDialog getInstance()
          Replies the instance of the dialog
static Layer getLayerForIndex(int index)
           
static MultikeyShortcutAction.MultikeyInfo getLayerInfo(Layer l)
           
static java.util.List<MultikeyShortcutAction.MultikeyInfo> getLayerInfoByClass(java.lang.Class<?> layerClass)
           
 LayerListDialog.LayerListModel getModel()
           
 void hideNotify()
          Called when toggle dialog is hidden (collapsed, removed, MapFrame is removed, ...).
static boolean isLayerValid(Layer l)
           
 void showNotify()
          Called when toggle dialog is shown (after it was created or expanded).
 
Methods inherited from class org.openstreetmap.josm.gui.dialogs.ToggleDialog
buttonHidden, buttonShown, closeDetachedDialog, collapse, createLayout, createLayout, detach, dock, dockWhenClosingDetachedDlg, eventDispatched, expand, getButton, getDefaultDetachedSize, getDetachedGeometry, getName, getPreferencePrefix, getPreferredHeight, getToggleAction, helpTopic, hideDialog, isDialogInCollapsedView, isDialogInDefaultView, isDialogShowing, setButton, setContentVisible, setDialogsPanel, setIsButtonHiding, setIsCollapsed, setIsDocked, setIsShowing, setTitle, showDialog, stateChanged, toggleButtonHook, toString, unfurlDialog
 
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, 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, 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, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

instance

private static LayerListDialog instance
the unique instance of the dialog


model

private LayerListDialog.LayerListModel model
the model for the layer list


selectionModel

private javax.swing.DefaultListSelectionModel selectionModel
the selection model


layerList

private LayerListDialog.LayerList layerList
the list of layers (technically its a JTable, but appears like a list)


opacityButton

private SideButton opacityButton

activateLayerAction

LayerListDialog.ActivateLayerAction activateLayerAction

showHideLayerAction

LayerListDialog.ShowHideLayerAction showHideLayerAction

visibilityToggleShortcuts

private final Shortcut[] visibilityToggleShortcuts

visibilityToggleActions

private final LayerListDialog.ToggleLayerIndexVisibility[] visibilityToggleActions
Constructor Detail

LayerListDialog

protected LayerListDialog(MapFrame mapFrame)
Create an layer list and attach it to the given mapView.

Method Detail

createInstance

public static void createInstance(MapFrame mapFrame)
Creates the instance of the dialog. It's connected to the map frame mapFrame

Parameters:
mapFrame - the map frame

getInstance

public static LayerListDialog getInstance()
                                   throws java.lang.IllegalStateException
Replies the instance of the dialog

Returns:
the instance of the dialog
Throws:
java.lang.IllegalStateException - thrown, if the dialog is not created yet
See Also:
createInstance(MapFrame)

createVisibilityToggleShortcuts

private final void createVisibilityToggleShortcuts()
registers (shortcut to toggle right hand side toggle dialogs)+(number keys) shortcuts to toggle the visibility of the first ten layers.


showNotify

public void showNotify()
Description copied from class: ToggleDialog
Called when toggle dialog is shown (after it was created or expanded). Descendants may overwrite this method, it's a good place to register listeners needed to keep dialog updated

Overrides:
showNotify in class ToggleDialog

hideNotify

public void hideNotify()
Description copied from class: ToggleDialog
Called when toggle dialog is hidden (collapsed, removed, MapFrame is removed, ...). Good place to unregister listeners

Overrides:
hideNotify in class ToggleDialog

getModel

public LayerListDialog.LayerListModel getModel()

adaptTo

protected void adaptTo(LayerListDialog.IEnabledStateUpdating listener,
                       javax.swing.ListSelectionModel listSelectionModel)
Wires listener to listSelectionModel in such a way, that listener receives a LayerListDialog.IEnabledStateUpdating.updateEnabledState() on every ListSelectionEvent.

Parameters:
listener - the listener
listSelectionModel - the source emitting ListSelectionEvents

adaptTo

protected void adaptTo(LayerListDialog.IEnabledStateUpdating listener,
                       LayerListDialog.LayerListModel listModel)
Wires listener to listModel in such a way, that listener receives a LayerListDialog.IEnabledStateUpdating.updateEnabledState() on every ListDataEvent.

Parameters:
listener - the listener
listSelectionModel - the source emitting ListDataEvents

destroy

public void destroy()
Overrides:
destroy in class ToggleDialog

createShowHideLayerAction

public LayerListDialog.ShowHideLayerAction createShowHideLayerAction()
Creates a LayerListDialog.ShowHideLayerAction for layer in the context of this LayerListDialog.

Parameters:
layer - the layer
Returns:
the action

createDeleteLayerAction

public LayerListDialog.DeleteLayerAction createDeleteLayerAction()
Creates a LayerListDialog.DeleteLayerAction for layer in the context of this LayerListDialog.

Parameters:
layer - the layer
Returns:
the action

createActivateLayerAction

public LayerListDialog.ActivateLayerAction createActivateLayerAction(Layer layer)
Creates a LayerListDialog.ActivateLayerAction for layer in the context of this LayerListDialog.

Parameters:
layer - the layer
Returns:
the action

createMergeLayerAction

public LayerListDialog.MergeAction createMergeLayerAction(Layer layer)
Creates a MergeLayerAction for layer in the context of this LayerListDialog.

Parameters:
layer - the layer
Returns:
the action

getLayerForIndex

public static Layer getLayerForIndex(int index)

getLayerInfoByClass

public static java.util.List<MultikeyShortcutAction.MultikeyInfo> getLayerInfoByClass(java.lang.Class<?> layerClass)

isLayerValid

public static boolean isLayerValid(Layer l)

getLayerInfo

public static MultikeyShortcutAction.MultikeyInfo getLayerInfo(Layer l)


JOSM