Package docking.menu

Class MultiStateDockingAction<T>

  • Type Parameters:
    T - the type of the user data
    All Implemented Interfaces:
    DockingActionIf, HelpDescriptor
    Direct Known Subclasses:
    NonToolbarMultiStateAction

    public abstract class MultiStateDockingAction<T>
    extends DockingAction
    An action that can be in one of multiple states. The button of this action has a drop-down icon that allows users to change the state of the button. Also, by default, as the user presses the button, it will execute the action corresponding to the current state.

    Warning: if you use this action in a toolbar, then be sure to call the correct constructor. If you call another constructor, or pass false for this boolean above, your doActionPerformed(ActionContext) method will get called twice.

    See Also:
    MultiActionDockingAction
    • Constructor Detail

      • MultiStateDockingAction

        public MultiStateDockingAction​(java.lang.String name,
                                       java.lang.String owner)
        Call this constructor with this action will not be added to a toolbar
        Parameters:
        name - the action name
        owner - the owner
        See Also:
        MultiStateDockingAction(String, String, boolean)
      • MultiStateDockingAction

        protected MultiStateDockingAction​(java.lang.String name,
                                          java.lang.String owner,
                                          boolean isToolbarAction)
        Use this constructor explicitly when this action is used in a toolbar, passing true for isToolbarAction (see the javadoc header note).
        Parameters:
        name - the action name
        owner - the owner
        isToolbarAction - true if this action is a toolbar action
    • Method Detail

      • actionStateChanged

        public abstract void actionStateChanged​(ActionState<T> newActionState,
                                                EventTrigger trigger)
      • setPerformActionOnPrimaryButtonClick

        public void setPerformActionOnPrimaryButtonClick​(boolean doPerformAction)
        If doPerformAction is true, then, when the user clicks the button and not the drop-down arrow, the doActionPerformed(ActionContext) method will be called. If doPerformAction is false, then, when the user clicks the button and not the drop-down arrow, the popup menu will be shown, just as if the user had clicked the drop-down arrow.

        Also, if the parameter is true, then the button will behave like a button in terms of mouse feedback. If false, then the button will behave more like a label.

        Parameters:
        doPerformAction - true to call doActionPerformed(ActionContext) when the user presses the button for this action (not the drop-down menu; see above)
      • setUseCheckboxForIcons

        public void setUseCheckboxForIcons​(boolean useCheckboxForIcons)
        Overrides the default icons for actions shown in popup menu of the multi-state action. By default, the popup menu items will use the icons as provided by the ActionState. By passing true to this method, icons will not be used in the popup menu. Instead, a checkbox icon will be used to show the active action state.
        Parameters:
        useCheckboxForIcons - true to use a checkbox
      • setDefaultIcon

        public void setDefaultIcon​(javax.swing.Icon icon)
        Sets the icon to use if the active action state does not supply an icon. This is useful if you wish for your action states to not use icon, but desire the action itself to have an icon.
        Parameters:
        icon - the icon
      • doActionPerformed

        protected void doActionPerformed​(ActionContext context)
        This is the callback to be overridden when the child wishes to respond to user button presses that are on the button and not the drop-down. This will only be called if performActionOnPrimaryButtonClick is true.
        Parameters:
        context - the action context
      • getStateActions

        protected java.util.List<DockingActionIf> getStateActions()
      • setGroup

        public void setGroup​(java.lang.String group)
      • setSubGroup

        public void setSubGroup​(java.lang.String subGroup)
      • addActionState

        public void addActionState​(ActionState<T> actionState)
        add the supplied ActionState if fireFirstEvent is true the first one will fire its event
        Parameters:
        actionState - the ActionState to add
      • setActionStates

        public void setActionStates​(java.util.List<ActionState<T>> newStates)
      • getCurrentUserData

        public T getCurrentUserData()
      • getAllActionStates

        public java.util.List<ActionState<T>> getAllActionStates()
      • setCurrentActionStateByUserData

        public void setCurrentActionStateByUserData​(T t)
      • setCurrentActionState

        public void setCurrentActionState​(ActionState<T> actionState)
      • setCurrentActionStateWithTrigger

        public void setCurrentActionStateWithTrigger​(ActionState<T> actionState,
                                                     EventTrigger trigger)
      • setMenuBarData

        public void setMenuBarData​(MenuData newMenuData)
        Description copied from class: DockingAction
        Sets the MenuData to be used to put this action on the tool's menu bar
        Overrides:
        setMenuBarData in class DockingAction
        Parameters:
        newMenuData - the MenuData to be used to put this action on the tool's menu bar
      • superSetMenuBarData

        protected void superSetMenuBarData​(MenuData newMenuData)
      • setPopupMenuData

        public void setPopupMenuData​(MenuData newMenuData)
        Description copied from class: DockingAction
        Sets the MenuData to be used to put this action in the tool's popup menu
        Overrides:
        setPopupMenuData in class DockingAction
        Parameters:
        newMenuData - the MenuData to be used to put this action on the tool's popup menu
      • getToolTipText

        public java.lang.String getToolTipText()