org.openstreetmap.josm.gui.dialogs
Class ToggleDialog

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
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
Direct Known Subclasses:
ChangesetDialog, CommandStackDialog, ConflictDialog, FilterDialog, HistoryDialog, ImageViewerDialog, LayerListDialog, MapPaintDialog, PropertiesDialog, RelationListDialog, SelectionListDialog, UserListDialog, ValidatorDialog

public class ToggleDialog
extends javax.swing.JPanel
implements ShowHideButtonListener, Helpful, java.awt.event.AWTEventListener

This class is a toggle dialog that can be turned on and off.

See Also:
Serialized Form

Nested Class Summary
static class ToggleDialog.ButtonHiddingType
           
private  class ToggleDialog.DetachedDialog
          The dialog class used to display toggle dialogs in a detached window.
protected  class ToggleDialog.TitleBar
          The title bar displayed in docked mode
 class ToggleDialog.ToggleDialogAction
          The action to toggle the visibility state of this toggle dialog.
 
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
protected  javax.swing.JToggleButton button
           
private  java.util.List<javax.swing.Action> buttonActions
           
protected  ToggleDialog.ButtonHiddingType buttonHiding
          Indicates whether dynamic button hiding is active or not.
private  javax.swing.JButton buttonsHide
          the label in the title bar which shows whether buttons are dynamic or not
private  javax.swing.JPanel buttonsPanel
           
protected  javax.swing.JDialog detachedDialog
          the JDialog displaying the toggle dialog as undocked dialog
protected  DialogsPanel dialogsPanel
          DialogsPanel that manages all ToggleDialogs
protected  boolean isCollapsed
          If isShowing and isDocked are true, indicates whether the dialog is currently minimized or not.
protected  boolean isDocked
          If isShowing is true, indicates whether the dialog is docked or not, e.
protected  boolean isShowing
          Indicates whether the dialog is showing or not.
private  javax.swing.JLabel lblMinimized
          the label in the title bar which shows whether the toggle dialog is expanded or collapsed
protected  java.lang.String name
           
protected  java.lang.String preferencePrefix
           
private  int preferredHeight
          the preferred height if the toggle dialog is expanded
private  ParametrizedEnumProperty<ToggleDialog.ButtonHiddingType> PROP_BUTTON_HIDING
           
protected  ToggleDialog.TitleBar titleBar
           
protected  ToggleDialog.ToggleDialogAction toggleAction
          The action to toggle this dialog
protected  javax.swing.JCheckBoxMenuItem windowMenuItem
          holds the menu entry in the windows menu.
 
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
ToggleDialog(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight)
          Constructor (see below)
ToggleDialog(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight, boolean defShow)
          Constructor
 
Method Summary
 void buttonHidden()
           
 void buttonShown()
           
 void closeDetachedDialog()
          Closes the detached dialog if this toggle dialog is currently displayed in a detached dialog.
 void collapse()
          Collapses the toggle dialog to the title bar only
protected  java.awt.Component createLayout(java.awt.Component data, boolean scroll, java.util.Collection<SideButton> buttons)
           
protected  java.awt.Component createLayout(java.awt.Component data, boolean scroll, java.util.Collection<SideButton> firstButtons, java.util.Collection<SideButton>... nextButtons)
           
 void destroy()
           
private  void destroyComponents(java.awt.Component component)
           
protected  void detach()
          Display the dialog in a detached window.
protected  void dock()
          Displays the toggle dialog in the toggle dialog view on the right of the main map window.
protected  boolean dockWhenClosingDetachedDlg()
           
 void eventDispatched(java.awt.AWTEvent event)
           
protected  void expand()
          Expands the toggle dialog
 javax.swing.JToggleButton getButton()
           
protected  java.awt.Dimension getDefaultDetachedSize()
          Default size of the detached dialog.
protected  java.awt.Rectangle getDetachedGeometry(java.awt.Rectangle last)
          Change the Geometry of the detached dialog to better fit the content.
 java.lang.String getName()
          Replies the name of this toggle dialog
 java.lang.String getPreferencePrefix()
          Replies the prefix for the preference settings of this dialog.
 int getPreferredHeight()
           
 javax.swing.AbstractAction getToggleAction()
          Replies the action to toggle the visible state of this toggle dialog
 java.lang.String helpTopic()
           
 void hideDialog()
          Hides the dialog
 void hideNotify()
          Called when toggle dialog is hidden (collapsed, removed, MapFrame is removed, ...).
 boolean isDialogInCollapsedView()
          Replies true if this dialog is docked and collapsed
 boolean isDialogInDefaultView()
          Replies true if this dialog is docked and expanded
 boolean isDialogShowing()
          Replies true if this dialog is showing either as docked or as detached dialog
 void setButton(javax.swing.JToggleButton button)
           
protected  void setContentVisible(boolean visible)
          Sets the visibility of all components in this toggle dialog, except the title bar
 void setDialogsPanel(DialogsPanel dialogsPanel)
          Sets the dialogsPanel managing all toggle dialogs
protected  void setIsButtonHiding(ToggleDialog.ButtonHiddingType val)
           
protected  void setIsCollapsed(boolean val)
           
protected  void setIsDocked(boolean val)
           
protected  void setIsShowing(boolean val)
           
 void setTitle(java.lang.String title)
          Sets the title
 void showDialog()
          Shows the dialog
 void showNotify()
          Called when toggle dialog is shown (after it was created or expanded).
protected  void stateChanged()
          primitive stateChangedListener for subclasses
protected  void toggleButtonHook()
          Do something when the toggleButton is pressed.
 java.lang.String toString()
           
 void unfurlDialog()
          Changes the state of the dialog such that the user can see the content.
 
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

PROP_BUTTON_HIDING

private final ParametrizedEnumProperty<ToggleDialog.ButtonHiddingType> PROP_BUTTON_HIDING

toggleAction

protected ToggleDialog.ToggleDialogAction toggleAction
The action to toggle this dialog


preferencePrefix

protected java.lang.String preferencePrefix

name

protected final java.lang.String name

dialogsPanel

protected DialogsPanel dialogsPanel
DialogsPanel that manages all ToggleDialogs


titleBar

protected ToggleDialog.TitleBar titleBar

isShowing

protected boolean isShowing
Indicates whether the dialog is showing or not.


isDocked

protected boolean isDocked
If isShowing is true, indicates whether the dialog is docked or not, e. g. shown as part of the main window or as a separate dialog window.


isCollapsed

protected boolean isCollapsed
If isShowing and isDocked are true, indicates whether the dialog is currently minimized or not.


buttonHiding

protected ToggleDialog.ButtonHiddingType buttonHiding
Indicates whether dynamic button hiding is active or not.


preferredHeight

private int preferredHeight
the preferred height if the toggle dialog is expanded


lblMinimized

private javax.swing.JLabel lblMinimized
the label in the title bar which shows whether the toggle dialog is expanded or collapsed


buttonsHide

private javax.swing.JButton buttonsHide
the label in the title bar which shows whether buttons are dynamic or not


detachedDialog

protected javax.swing.JDialog detachedDialog
the JDialog displaying the toggle dialog as undocked dialog


button

protected javax.swing.JToggleButton button

buttonsPanel

private javax.swing.JPanel buttonsPanel

buttonActions

private java.util.List<javax.swing.Action> buttonActions

windowMenuItem

protected javax.swing.JCheckBoxMenuItem windowMenuItem
holds the menu entry in the windows menu. Required to properly toggle the checkbox on show/hide

Constructor Detail

ToggleDialog

public ToggleDialog(java.lang.String name,
                    java.lang.String iconName,
                    java.lang.String tooltip,
                    Shortcut shortcut,
                    int preferredHeight)
Constructor (see below)


ToggleDialog

public ToggleDialog(java.lang.String name,
                    java.lang.String iconName,
                    java.lang.String tooltip,
                    Shortcut shortcut,
                    int preferredHeight,
                    boolean defShow)
Constructor

Parameters:
name - the name of the dialog
iconName - the name of the icon to be displayed
tooltip - the tool tip
shortcut - the shortcut
preferredHeight - the preferred height for the dialog
defShow - if the dialog should be shown by default, if there is no preference
Method Detail

showDialog

public void showDialog()
Shows the dialog


unfurlDialog

public void unfurlDialog()
Changes the state of the dialog such that the user can see the content. (takes care of the panel reconstruction)


buttonHidden

public void buttonHidden()
Specified by:
buttonHidden in interface ShowHideButtonListener

buttonShown

public void buttonShown()
Specified by:
buttonShown in interface ShowHideButtonListener

hideDialog

public void hideDialog()
Hides the dialog


dock

protected void dock()
Displays the toggle dialog in the toggle dialog view on the right of the main map window.


detach

protected void detach()
Display the dialog in a detached window.


collapse

public void collapse()
Collapses the toggle dialog to the title bar only


expand

protected void expand()
Expands the toggle dialog


setContentVisible

protected void setContentVisible(boolean visible)
Sets the visibility of all components in this toggle dialog, except the title bar

Parameters:
visible - true, if the components should be visible; false otherwise

destroy

public void destroy()

destroyComponents

private void destroyComponents(java.awt.Component component)

closeDetachedDialog

public void closeDetachedDialog()
Closes the detached dialog if this toggle dialog is currently displayed in a detached dialog.


showNotify

public void showNotify()
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


hideNotify

public void hideNotify()
Called when toggle dialog is hidden (collapsed, removed, MapFrame is removed, ...). Good place to unregister listeners


getToggleAction

public javax.swing.AbstractAction getToggleAction()
Replies the action to toggle the visible state of this toggle dialog

Returns:
the action to toggle the visible state of this toggle dialog

getPreferencePrefix

public java.lang.String getPreferencePrefix()
Replies the prefix for the preference settings of this dialog.

Returns:
the prefix for the preference settings of this dialog.

setDialogsPanel

public void setDialogsPanel(DialogsPanel dialogsPanel)
Sets the dialogsPanel managing all toggle dialogs


getName

public java.lang.String getName()
Replies the name of this toggle dialog

Overrides:
getName in class java.awt.Component

setTitle

public void setTitle(java.lang.String title)
Sets the title


setIsShowing

protected void setIsShowing(boolean val)

setIsDocked

protected void setIsDocked(boolean val)

setIsCollapsed

protected void setIsCollapsed(boolean val)

setIsButtonHiding

protected void setIsButtonHiding(ToggleDialog.ButtonHiddingType val)

getPreferredHeight

public int getPreferredHeight()

helpTopic

public java.lang.String helpTopic()
Specified by:
helpTopic in interface Helpful

toString

public java.lang.String toString()
Overrides:
toString in class java.awt.Component

isDialogShowing

public boolean isDialogShowing()
Replies true if this dialog is showing either as docked or as detached dialog


isDialogInDefaultView

public boolean isDialogInDefaultView()
Replies true if this dialog is docked and expanded


isDialogInCollapsedView

public boolean isDialogInCollapsedView()
Replies true if this dialog is docked and collapsed


setButton

public void setButton(javax.swing.JToggleButton button)

getButton

public javax.swing.JToggleButton getButton()

getDetachedGeometry

protected java.awt.Rectangle getDetachedGeometry(java.awt.Rectangle last)
Change the Geometry of the detached dialog to better fit the content.


getDefaultDetachedSize

protected java.awt.Dimension getDefaultDetachedSize()
Default size of the detached dialog. Override this method to customize the initial dialog size.


toggleButtonHook

protected void toggleButtonHook()
Do something when the toggleButton is pressed.


dockWhenClosingDetachedDlg

protected boolean dockWhenClosingDetachedDlg()

stateChanged

protected void stateChanged()
primitive stateChangedListener for subclasses


createLayout

protected java.awt.Component createLayout(java.awt.Component data,
                                          boolean scroll,
                                          java.util.Collection<SideButton> buttons)

createLayout

protected java.awt.Component createLayout(java.awt.Component data,
                                          boolean scroll,
                                          java.util.Collection<SideButton> firstButtons,
                                          java.util.Collection<SideButton>... nextButtons)

eventDispatched

public void eventDispatched(java.awt.AWTEvent event)
Specified by:
eventDispatched in interface java.awt.event.AWTEventListener


JOSM