Class ActionsCategory

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.io.Serializable, java.lang.Cloneable, java.lang.Comparable, java.util.EventListener, javax.swing.Action
    Direct Known Subclasses:
    MDActionsCategory, MenuAction, SelectItemAction, SetFontAction

    @OpenApiAll
    public class ActionsCategory
    extends NMAction
    Actions category owns a list of actions. Actions category can represent structure of menu or toolbar and it can be nested (represents sub menu).
    See Also:
    Serialized Form
    • Field Detail

      • USE_AS_SEPARATOR_IN_UI

        public static final java.lang.String USE_AS_SEPARATOR_IN_UI
        A name of property to use this category as separator in UI even if it does not have inner actions
        See Also:
        Constant Field Values
      • DISABLE_IF_EMPTY

        public static final java.lang.String DISABLE_IF_EMPTY
        A name of property to disable the category if it has no actions.
        See Also:
        Constant Field Values
      • REMOVE_IF_EMPTY

        public static final java.lang.String REMOVE_IF_EMPTY
        A name of property to drop the category if it has no actions.
        See Also:
        Constant Field Values
      • MAX_CATEGORY_ACTIONS

        public static final int MAX_CATEGORY_ACTIONS
        Default value limiting maximum action count in one category
        See Also:
        Constant Field Values
      • ACTIONS_PROPERTY

        public static final java.lang.String ACTIONS_PROPERTY
        Property Change event name fired when actions of this category were changed.
        See Also:
        setActions(List), Constant Field Values
      • nested

        private boolean nested
        Flag indicates that children of this action are nested elements. When representing this action as menu, nested action means new sub menu. Not nested means group(usually separated by some menu separator).
      • useActionForDisable

        private boolean useActionForDisable
        If true, menus of this category will be enabled if category is enabled. If false, menus of this category will be disabled if all children are disabled event if category itself is enabled.
      • actions

        private java.util.List<NMAction> actions
        The list of contained actions.
      • displayHeader

        private boolean displayHeader
    • Constructor Detail

      • ActionsCategory

        public ActionsCategory()
        Creates actions category with no name
      • ActionsCategory

        public ActionsCategory​(@CheckForNull
                               java.lang.String id,
                               @CheckForNull
                               java.lang.String name)
        Creates actions category with given name and id.
        Parameters:
        id - the id of the category.
        name - the name of the category.
      • ActionsCategory

        public ActionsCategory​(@CheckForNull
                               java.lang.String id,
                               @CheckForNull
                               java.lang.String name,
                               @CheckForNull
                               javax.swing.KeyStroke stroke)
        Creates actions category with given id, name, and key stroke.
        Parameters:
        id - the id of the category.
        name - the name of the category.
        stroke - key stroke used for invoking action category.
      • ActionsCategory

        public ActionsCategory​(@CheckForNull
                               java.lang.String id,
                               @CheckForNull
                               java.lang.String name,
                               @CheckForNull
                               javax.swing.KeyStroke stroke,
                               @CheckForNull
                               java.lang.String group)
        Creates actions category with given id, name, key stroke and assigned group.
        Parameters:
        id - the id of the category.
        name - the name of the category.
        stroke - key stroke used for invoking action category.
        group - the name of the related commands group.
      • ActionsCategory

        public ActionsCategory​(@CheckForNull
                               java.lang.String id,
                               @CheckForNull
                               java.lang.String name,
                               int keyCode)
        Creates actions category with given id, name, and key code.
        Parameters:
        id - the id of the category.
        name - the name of the category.
        keyCode - key stroke used for invoking action category.
      • ActionsCategory

        public ActionsCategory​(@CheckForNull
                               java.lang.String id,
                               @CheckForNull
                               java.lang.String name,
                               int keyCode,
                               @CheckForNull
                               java.lang.String group)
        Creates actions category with given id, name, and key code.
        Parameters:
        id - the id of the category.
        name - the name of the category.
        keyCode - key stroke used for invoking action category.
        group - the name of the related commands group.
    • Method Detail

      • createSeparatorCategory

        public static ActionsCategory createSeparatorCategory()
      • addAction

        public void addAction​(@CheckForNull
                              NMAction action)
        Adds the given action to the category. Fires ADDED_ACTION_PROPERTY property change event, where new value is added action. Fires CHANGE_ACTIONS_PROPERTY (for backward compatibility) property change event, where old value is old actions list, new value is new actions list.
        Overrides:
        addAction in class NMAction
        Parameters:
        action - the given action to add, parameter can be null.
      • addActions

        public void addActions​(java.util.List<? extends NMAction> actions)
        Adds given actions to the category. Fires ACTIONS_PROPERTY (and CHANGE_ACTIONS_PROPERTY for backward compatibility) property change event, where old value is old actions list, new value is new actions list.
        Parameters:
        actions - the given actions to add, parameter can be null.
      • addAction

        public void addAction​(@CheckForNull
                              NMAction action,
                              int position)
        Adds the given action at the specified position to the category. Fires ADDED_ACTION_PROPERTY property change event, where new value is added action. Fires CHANGE_ACTIONS_PROPERTY (for backward compatibility) property change event, where old value is old actions list, new value is new actions list.
        Parameters:
        action - the given action to add, parameter can be null.
        position - the given position to be added.
      • addActionNearTheGiven

        public void addActionNearTheGiven​(@CheckForNull
                                          java.lang.String givenID,
                                          boolean addAfter,
                                          @CheckForNull
                                          NMAction action)
        Adds given action near the action with the given id. The given action will be added into the same parent as action with givenID. The position of the given action will be above or below the "givenID".
        Parameters:
        givenID - the id of action to add near
        addAfter - add after or before "givenID"
        action - the action to add.
      • removeAction

        public void removeAction​(@CheckForNull
                                 NMAction action)
        Removes the given action from the category. Fires REMOVED_ACTION_PROPERTY property change event, where old value is removed action. Fires CHANGE_ACTIONS_PROPERTY (for backward compatibility) property change event, where old value is old actions list, new value is new actions list.
        Overrides:
        removeAction in class NMAction
        Parameters:
        action - the given action to remove, parameter can be null.
      • getActions

        public java.util.List<NMAction> getActions()
        Returns the list of the owned actions.
        Overrides:
        getActions in class NMAction
        Returns:
        the cloned list of the actions.
      • getCategories

        public java.util.List<ActionsCategory> getCategories()
        Gets inner action categories.
        Returns:
        a list of action categories.
      • getActionsRecursively

        public java.util.List<NMAction> getActionsRecursively​(boolean includeCategories)
        Returns all simple actions (not ActionsCategory) recursively.
        Parameters:
        includeCategories - If true, then ActionsCategories will be included in the list
        Returns:
        all actions recursively
      • addActionsRecursively

        private static void addActionsRecursively​(ActionsCategory category,
                                                  java.util.List<NMAction> list,
                                                  boolean addCategories)
      • setActions

        public void setActions​(java.util.List<? extends NMAction> actions)
        Sets the list of the new actions overriding old actions. Fires ACTIONS_PROPERTY (and CHANGE_ACTIONS_PROPERTY for backward compatibility) property change event, where old value is old actions list, new value is new actions list.
        Overrides:
        setActions in class NMAction
        Parameters:
        actions - the new list of the actions.
      • removeIf

        public void removeIf​(java.util.function.Predicate<NMAction> filter)
        Description copied from class: NMAction
        Removes all of the owned actions that satisfy the given predicate
        Overrides:
        removeIf in class NMAction
        Parameters:
        filter - given predicate
      • forEach

        public void forEach​(java.util.function.Consumer<NMAction> consumer)
        Description copied from class: NMAction
        Performs the given consumer for each owned action. Owned actions should not be added/removed inside consumer.
        Overrides:
        forEach in class NMAction
        Parameters:
        consumer - the action to be performed for each NMAction
      • forEachIncludingSelf

        public void forEachIncludingSelf​(java.util.function.Consumer<NMAction> consumer)
        Description copied from class: NMAction
        Performs the given consumer for each owned action including self. Owned actions should not be added/removed inside consumer.
        Overrides:
        forEachIncludingSelf in class NMAction
        Parameters:
        consumer - the action to be performed for each NMAction
      • clone

        public ActionsCategory clone()
        Clones the category. During clone does not fires any property change events. Does deep clone.
        Overrides:
        clone in class NMAction
        Returns:
        deep clone of category.
      • shallowClone

        public ActionsCategory shallowClone()
        Clones the category. During clone does not fires any property change events. Does deep clone.
        Overrides:
        shallowClone in class NMAction
        Returns:
        deep clone of category.
      • setNested

        public void setNested​(boolean nested)
        Sets new value of nested flag. Flag indicates that children of this action is nested elements. When representing this action as menu, nested action means new sub menu. Not nested means group(usually separated by some menu separator).
        Parameters:
        nested - new value of nested flag.
      • isNested

        public boolean isNested()
        Returns value of nested flag.
        Returns:
        true if this category is nested.
        See Also:
        setNested(boolean)
      • accept

        public void accept​(ActionsVisitor visitor)
        Accepts visitor and calls visit method of visitor.
        Overrides:
        accept in class NMAction
        Parameters:
        visitor - ActionsVisitor.
      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent e)
        Empty implementation.
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
        Specified by:
        actionPerformed in class NMAction
        Parameters:
        e - event caused this action execution.
      • setUseActionForDisable

        public void setUseActionForDisable​(boolean use)
        Parameters:
        use - if true, menus created from this category will be disabled if all children are disabled.
        See Also:
        useActionForDisable
      • isUseActionForDisable

        public boolean isUseActionForDisable()
        Returns value of nested flag.
        Returns:
        value of mUseActionForDisable field
        See Also:
        (boolean)
      • breakActions

        public static void breakActions​(ActionsCategory category,
                                        java.util.List<NMAction> actions)
        Breaks given actions into subcategories of given category if the actions number exceeds predefined number.
        Parameters:
        category - category to add created inner categories
        actions - actions to break into categories
      • breakActions

        public static void breakActions​(ActionsCategory category,
                                        java.util.List<? extends NMAction> actions,
                                        int maxCategorySize,
                                        java.lang.String categoryName,
                                        boolean nested)
        Breaks given actions into subcategories of given category if the actions number exceeds maxCategorySize.
        Parameters:
        category - category to add created inner categories
        actions - actions to break into categories
        maxCategorySize - max size of inner category
        categoryName - subcategory name
        nested - make nested subcategories
      • breakActions

        public static void breakActions​(ActionsCategory category,
                                        java.util.List<? extends NMAction> actions,
                                        int maxCategorySize,
                                        java.lang.String categoryName,
                                        boolean nested,
                                        int innerCategorySize)
        Breaks category into sub categories, but it has ability to specify inner category size separately
        Parameters:
        category - category to add created inner categories
        actions - actions to break into categories
        maxCategorySize - max size of inner category
        categoryName - subcategory name
        nested - make nested subcategories
        innerCategorySize - maximum size of inner category
      • sort

        public void sort()
      • getAction

        @CheckForNull
        public NMAction getAction​(java.lang.String actionID)
        Find direct action with given ID
        Parameters:
        actionID - action ID
        Returns:
        a list of action categories.
      • isEmpty

        public boolean isEmpty()
        Returns:
        true if this category contains no actions at all
      • isDisplayHeader

        public boolean isDisplayHeader()
        Returns:
        display header flag
      • setDisplayHeader

        public void setDisplayHeader​(boolean displayHeader)
        Display category name as header of category. This has affect only if category is not nested
        Parameters:
        displayHeader - display header of not nested menu
      • size

        public int size()
        Size of category - number of inner actions.
        Returns:
        size of category