Class ToggleDialog

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  ToggleDialog.ButtonHidingType
      The button-hiding strategy in toggler dialogs.
      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
    • Constructor Summary

      Constructors 
      Constructor Description
      ToggleDialog​(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight)
      Constructor
      ToggleDialog​(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight, boolean defShow)
      Constructor
      ToggleDialog​(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight, boolean defShow, java.lang.Class<? extends PreferenceSetting> prefClass)
      Constructor
      ToggleDialog​(java.lang.String name, java.lang.String iconName, java.lang.String tooltip, Shortcut shortcut, int preferredHeight, boolean defShow, java.lang.Class<? extends PreferenceSetting> prefClass, boolean isExpert)
      Constructor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void buttonHidden()
      Called when the button is hidden
      void buttonShown()
      Called when the button is shown
      void clearButtonActions()
      Clear button actions.
      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)
      Create a component with the given layout for this component.
      protected java.awt.Component createLayout​(java.awt.Component data, boolean scroll, java.util.Collection<SideButton> firstButtons, java.util.Collection<SideButton>... nextButtons)  
      void destroy()
      Called when the object has been destroyed.
      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()  
      private void dynamicButtonsPropertyChanged()  
      void eventDispatched​(java.awt.AWTEvent event)  
      protected void expand()
      Expands the toggle dialog
      javax.swing.JToggleButton getButton()
      Gets the button from the button list that is used to display this dialog.
      protected java.awt.Dimension getDefaultDetachedSize()
      Returns the default size of the detached dialog.
      int getLastHeight()
      Returns the last used height stored in preferences or preferredHeight.
      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()
      Returns the preferred height of this dialog.
      javax.swing.AbstractAction getToggleAction()
      Replies the action to toggle the visible state of this toggle dialog
      java.lang.String helpTopic()
      Returns the help topic on JOSM wiki for this feature.
      void hideDialog()
      Hides the dialog
      void hideNotify()
      Called when toggle dialog is hidden (collapsed, removed, MapFrame is removed, ...).
      boolean isDialogInCollapsedView()
      Determines if this dialog is docked and collapsed.
      boolean isDialogInDefaultView()
      Determines if this dialog is docked and expanded.
      boolean isDialogShowing()
      Determines if this dialog is showing either as docked or as detached dialog.
      void preferenceChanged​(PreferenceChangeEvent e)
      Triggered when a preference entry value changes.
      private void refreshHidingButtons()  
      protected void registerInWindowMenu​(boolean isExpert)
      Registers this dialog in the window menu.
      void rememberHeight()
      Store the current height in preferences so that we can restore it.
      void setButton​(javax.swing.JToggleButton button)
      Sets the button from the button list that is used to display this dialog.
      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.ButtonHidingType 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, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, 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
    • Constructor Detail

      • ToggleDialog

        public ToggleDialog​(java.lang.String name,
                            java.lang.String iconName,
                            java.lang.String tooltip,
                            Shortcut shortcut,
                            int preferredHeight)
        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
      • 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
      • ToggleDialog

        public ToggleDialog​(java.lang.String name,
                            java.lang.String iconName,
                            java.lang.String tooltip,
                            Shortcut shortcut,
                            int preferredHeight,
                            boolean defShow,
                            java.lang.Class<? extends PreferenceSetting> prefClass)
        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
        prefClass - the preferences settings class, or null if not applicable
      • ToggleDialog

        public ToggleDialog​(java.lang.String name,
                            java.lang.String iconName,
                            java.lang.String tooltip,
                            Shortcut shortcut,
                            int preferredHeight,
                            boolean defShow,
                            java.lang.Class<? extends PreferenceSetting> prefClass,
                            boolean isExpert)
        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
        prefClass - the preferences settings class, or null if not applicable
        isExpert - true if this dialog should only be displayed in expert mode
        Since:
        15650
    • Method Detail

      • registerInWindowMenu

        protected void registerInWindowMenu​(boolean isExpert)
        Registers this dialog in the window menu. Called in the constructor.
        Parameters:
        isExpert - true if this dialog should only be displayed in expert mode
        Since:
        15650
      • 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)
      • 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
      • 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.
        Parameters:
        dialogsPanel - The panel 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.
        Parameters:
        title - The dialog's title
      • setIsShowing

        protected void setIsShowing​(boolean val)
      • setIsDocked

        protected void setIsDocked​(boolean val)
      • getPreferredHeight

        public int getPreferredHeight()
        Returns the preferred height of this dialog.
        Returns:
        The preferred height if the toggle dialog is expanded
      • helpTopic

        public java.lang.String helpTopic()
        Description copied from interface: Helpful
        Returns the help topic on JOSM wiki for this feature.
        Specified by:
        helpTopic in interface Helpful
        Returns:
        the help topic on JOSM wiki for this feature
      • toString

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

        public boolean isDialogShowing()
        Determines if this dialog is showing either as docked or as detached dialog.
        Returns:
        true if this dialog is showing either as docked or as detached dialog
      • isDialogInDefaultView

        public boolean isDialogInDefaultView()
        Determines if this dialog is docked and expanded.
        Returns:
        true if this dialog is docked and expanded
      • isDialogInCollapsedView

        public boolean isDialogInCollapsedView()
        Determines if this dialog is docked and collapsed.
        Returns:
        true if this dialog is docked and collapsed
      • setButton

        public void setButton​(javax.swing.JToggleButton button)
        Sets the button from the button list that is used to display this dialog.

        Note: This is ignored by the ToggleDialog for now.

        Parameters:
        button - The button for this dialog.
      • getButton

        public javax.swing.JToggleButton getButton()
        Gets the button from the button list that is used to display this dialog.
        Returns:
        button The button for this dialog.
      • getDefaultDetachedSize

        protected java.awt.Dimension getDefaultDetachedSize()
        Returns the default size of the detached dialog. Override this method to customize the initial dialog size.
        Returns:
        the default size of the detached dialog
      • toggleButtonHook

        protected void toggleButtonHook()
        Do something when the toggleButton is pressed.
      • 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)
        Create a component with the given layout for this component.
        Parameters:
        data - The content to be displayed
        scroll - true if it should be wrapped in a JScrollPane
        buttons - The buttons to add.
        Returns:
        The component.
      • createLayout

        @SafeVarargs
        protected final java.awt.Component createLayout​(java.awt.Component data,
                                                        boolean scroll,
                                                        java.util.Collection<SideButton> firstButtons,
                                                        java.util.Collection<SideButton>... nextButtons)
      • clearButtonActions

        public void clearButtonActions()
        Clear button actions. Should be used when recreating the layout with sidebuttons, and the previous sidebuttons are no longer desired.
        Since:
        16113
      • eventDispatched

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

        public int getLastHeight()
        Returns the last used height stored in preferences or preferredHeight.
        Returns:
        the last used height stored in preferences or preferredHeight
        Since:
        14425
      • rememberHeight

        public void rememberHeight()
        Store the current height in preferences so that we can restore it.
        Since:
        14425