org.openstreetmap.josm.gui.dialogs
Class CommandStackDialog

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.CommandStackDialog
All Implemented Interfaces:
java.awt.event.AWTEventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, Helpful, OsmDataLayer.CommandQueueListener, ShowHideButtonListener

public class CommandStackDialog
extends ToggleDialog
implements OsmDataLayer.CommandQueueListener

See Also:
Serialized Form

Nested Class Summary
private static class CommandStackDialog.CommandCellRenderer
           
private  class CommandStackDialog.CommandStackPopup
           
protected static interface CommandStackDialog.IEnabledStateUpdating
          Interface to provide a callback for enabled state update.
(package private)  class CommandStackDialog.PopupMenuHandler
           
 class CommandStackDialog.SelectAction
           
protected  class CommandStackDialog.UndoRedoAction
          Action to undo or redo all commands up to (and including) the seleced item.
private  class CommandStackDialog.UndoRedoSelectionListener
          Selection listener for undo and redo area.
protected static class CommandStackDialog.UndoRedoType
          undo / redo switch to reduce duplicate code
 
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
private  CommandStackDialog.UndoRedoType lastOperation
           
private  CommandStackDialog.UndoRedoSelectionListener redoSelectionListener
           
private  javax.swing.JTree redoTree
           
private  javax.swing.tree.DefaultTreeModel redoTreeModel
           
private  javax.swing.JScrollPane scrollPane
           
private  javax.swing.JSeparator separator
           
(package private)  java.util.Set<CommandStackDialog.IEnabledStateUpdating> showNotifyListener
          Simple listener setup to update the button enabled state when the side dialog shows.
private  java.awt.Component spacer
           
private  CommandStackDialog.UndoRedoSelectionListener undoSelectionListener
           
private  javax.swing.JTree undoTree
           
private  javax.swing.tree.DefaultTreeModel undoTreeModel
           
 
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
CommandStackDialog(MapFrame mapFrame)
           
 
Method Summary
private  void addShowNotifyListener(CommandStackDialog.IEnabledStateUpdating listener)
           
private  void buildTrees()
          Build the trees of undo and redo commands (initially or when they have changed).
 void commandChanged(int queueSize, int redoSize)
           
protected  CommandListMutableTreeNode getNodeForCommand(PseudoCommand c, int idx)
          Wraps a command in a CommandListMutableTreeNode.
 void hideNotify()
          Called when toggle dialog is hidden (collapsed, removed, MapFrame is removed, ...).
 void showNotify()
          Called when toggle dialog is shown (after it was created or expanded).
protected  void wireUpdateEnabledStateUpdater(CommandStackDialog.IEnabledStateUpdating updater, javax.swing.JTree tree)
          Wires updater for enabled state to the events.
 
Methods inherited from class org.openstreetmap.josm.gui.dialogs.ToggleDialog
buttonHidden, buttonShown, closeDetachedDialog, collapse, createLayout, createLayout, destroy, 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

undoTreeModel

private javax.swing.tree.DefaultTreeModel undoTreeModel

redoTreeModel

private javax.swing.tree.DefaultTreeModel redoTreeModel

undoTree

private javax.swing.JTree undoTree

redoTree

private javax.swing.JTree redoTree

undoSelectionListener

private CommandStackDialog.UndoRedoSelectionListener undoSelectionListener

redoSelectionListener

private CommandStackDialog.UndoRedoSelectionListener redoSelectionListener

scrollPane

private javax.swing.JScrollPane scrollPane

separator

private javax.swing.JSeparator separator

spacer

private java.awt.Component spacer

lastOperation

private CommandStackDialog.UndoRedoType lastOperation

showNotifyListener

java.util.Set<CommandStackDialog.IEnabledStateUpdating> showNotifyListener
Simple listener setup to update the button enabled state when the side dialog shows.

Constructor Detail

CommandStackDialog

public CommandStackDialog(MapFrame mapFrame)
Method Detail

wireUpdateEnabledStateUpdater

protected void wireUpdateEnabledStateUpdater(CommandStackDialog.IEnabledStateUpdating updater,
                                             javax.swing.JTree tree)
Wires updater for enabled state to the events.


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

addShowNotifyListener

private void addShowNotifyListener(CommandStackDialog.IEnabledStateUpdating listener)

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

buildTrees

private void buildTrees()
Build the trees of undo and redo commands (initially or when they have changed).


getNodeForCommand

protected CommandListMutableTreeNode getNodeForCommand(PseudoCommand c,
                                                       int idx)
Wraps a command in a CommandListMutableTreeNode. Recursively adds child commands.


commandChanged

public void commandChanged(int queueSize,
                           int redoSize)
Specified by:
commandChanged in interface OsmDataLayer.CommandQueueListener


JOSM