Package com.nomagic.actions
Class ActionsCategory
java.lang.Object
javax.swing.AbstractAction
com.nomagic.actions.NMAction
com.nomagic.actions.ActionsCategory
- All Implemented Interfaces:
ActionListener
,Serializable
,Cloneable
,Comparable
,EventListener
,Action
- Direct Known Subclasses:
MDActionsCategory
,MenuAction
,SelectItemAction
,SetFontAction
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:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Property Change event name fired when actions of this category were changed.static final String
Property Change event name fired when new action is added.static final String
Deprecated.static final String
A name of property to disable the category if it has no actions.static final int
Default value limiting maximum action count in one categorystatic final String
A name of property to drop the category if it has no actions.static final String
Property Change event name fired when new action is removed.static final String
A name of property to use this category as separator in UI even if it does not have inner actionsFields inherited from class com.nomagic.actions.NMAction
ACTION_SHORTCUTS, BELONGS_TO_SEPARATE_GROUP_IN_UI, DO_NO_SHOW_ACTION_NAME_IN_UI, DO_NOT_REGISTER_ACTION_TO_COMPONENTS, GENERATED_ID_PREFIX, GROUP, ID, LARGE_ICON, MENU_SHORTCUT_MASK, TINY_ICON
Fields inherited from class javax.swing.AbstractAction
changeSupport, enabled
Fields inherited from interface javax.swing.Action
ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, DISPLAYED_MNEMONIC_INDEX_KEY, LARGE_ICON_KEY, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SELECTED_KEY, SHORT_DESCRIPTION, SMALL_ICON
-
Constructor Summary
ConstructorDescriptionCreates actions category with no nameActionsCategory
(String id, String name) Creates actions category with given name and id.ActionsCategory
(String id, String name, int keyCode) Creates actions category with given id, name, and key code.ActionsCategory
(String id, String name, int keyCode, String group) Creates actions category with given id, name, and key code.ActionsCategory
(String id, String name, KeyStroke stroke) Creates actions category with given id, name, and keystroke.ActionsCategory
(String id, String name, KeyStroke stroke, String group) Creates actions category with given id, name, keystroke and assigned group. -
Method Summary
Modifier and TypeMethodDescriptionvoid
accept
(ActionsVisitor visitor) Accepts visitor and calls visit method of visitor.void
Empty implementation.void
Adds the given action to the category.void
Adds the given action at the specified position to the category.void
addActionNearTheGiven
(String givenID, boolean addAfter, NMAction action) Adds given action near the action with the given id.void
addActions
(List<? extends NMAction> actions) Adds given actions to the category.static void
breakActions
(ActionsCategory category, List<? extends NMAction> actions, int maxCategorySize, String categoryName, boolean nested) Breaks given actions into subcategories of given category if the actions number exceeds maxCategorySize.static void
breakActions
(ActionsCategory category, List<? extends NMAction> actions, int maxCategorySize, String categoryName, boolean nested, int innerCategorySize) Breaks category into sub categories, but it has ability to specify inner category size separatelystatic void
breakActions
(ActionsCategory category, List<NMAction> actions) Breaks given actions into subcategories of given category if the actions number exceeds predefined number.static void
breakeActions
(ActionsCategory category, List<? extends NMAction> actions, int maxCategorySize, String categoryName, boolean nested) clone()
Clones the category.static ActionsCategory
void
Performs the given consumer for each owned action.void
forEachIncludingSelf
(Consumer<NMAction> consumer) Performs the given consumer for each owned action including self.Find direct action with given IDReturns the list of the owned actions.getActionsRecursively
(boolean includeCategories) Returns all simple actions (not ActionsCategory) recursively.Gets inner action categories.boolean
boolean
isEmpty()
boolean
isNested()
Returns value of nested flag.boolean
Returns value of nested flag.void
removeAction
(NMAction action) Removes the given action from the category.void
Removes all of the owned actions that satisfy the given predicatevoid
setActions
(List<? extends NMAction> actions) Sets the list of the new actions overriding old actions.void
setDisplayHeader
(boolean displayHeader) Display category name as header of category.void
setNested
(boolean nested) Sets new value of nested flag.void
setUseActionForDisable
(boolean use) Clones the category.int
size()
Size of category - number of inner actions.void
sort()
Methods inherited from class com.nomagic.actions.NMAction
addPropertyChangeListener, addShortcut, addShotcut, addWeakPropertyChangeListener, compareTo, createMenuItem, equals, firePropertyChange, getCommandKey, getDescription, getGroup, getIcon, getID, getLargeIcon, getLargeOrSmallIcon, getMenuShortcutMaskAsString, getMnemonicKey, getName, getPropertyChangeListeners, getShortcuts, getSmallIcon, getSmallOrLargeIcon, getTinyIcon, hashCode, hasMenuShortcutMask, isIDGenerated, removePropertyChangeListener, removeShortcut, removeWeakPropertyChangeListener, setDescription, setGroup, setIcon, setLargeIcon, setMnemonicKey, setName, setShortcuts, setSmallIcon, setTinyIcon, toString, updateState
Methods inherited from class javax.swing.AbstractAction
getKeys, getValue, isEnabled, putValue, setEnabled
-
Field Details
-
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:
-
DISABLE_IF_EMPTY
A name of property to disable the category if it has no actions.- See Also:
-
REMOVE_IF_EMPTY
A name of property to drop the category if it has no actions.- See Also:
-
MAX_CATEGORY_ACTIONS
public static final int MAX_CATEGORY_ACTIONSDefault value limiting maximum action count in one category- See Also:
-
ADDED_ACTION_PROPERTY
Property Change event name fired when new action is added. -
REMOVED_ACTION_PROPERTY
Property Change event name fired when new action is removed.- See Also:
-
ACTIONS_PROPERTY
Property Change event name fired when actions of this category were changed.- See Also:
-
CHANGE_ACTIONS_PROPERTY
Deprecated.Property Change event name fired when actions of this category were changed.- See Also:
-
-
Constructor Details
-
ActionsCategory
public ActionsCategory()Creates actions category with no name -
ActionsCategory
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 String id, @CheckForNull String name, @CheckForNull KeyStroke stroke) Creates actions category with given id, name, and keystroke.- Parameters:
id
- the id of the category.name
- the name of the category.stroke
- keystroke used for invoking action category.
-
ActionsCategory
public ActionsCategory(@CheckForNull String id, @CheckForNull String name, @CheckForNull KeyStroke stroke, @CheckForNull String group) Creates actions category with given id, name, keystroke and assigned group.- Parameters:
id
- the id of the category.name
- the name of the category.stroke
- keystroke used for invoking action category.group
- the name of the related commands group.
-
ActionsCategory
Creates actions category with given id, name, and key code.- Parameters:
id
- the id of the category.name
- the name of the category.keyCode
- keystroke used for invoking action category.
-
ActionsCategory
public ActionsCategory(@CheckForNull String id, @CheckForNull String name, int keyCode, @CheckForNull 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
- keystroke used for invoking action category.group
- the name of the related commands group.
-
-
Method Details
-
createSeparatorCategory
-
addAction
Adds the given action to the category. FiresADDED_ACTION_PROPERTY
property change event, where new value is added action. FiresCHANGE_ACTIONS_PROPERTY
(for backward compatibility) property change event, where old value is old actions list, new value is new actions list. -
addActions
Adds given actions to the category. FiresACTIONS_PROPERTY
(andCHANGE_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
Adds the given action at the specified position to the category. FiresADDED_ACTION_PROPERTY
property change event, where new value is added action. FiresCHANGE_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 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 nearaddAfter
- add after or before "givenID"action
- the action to add.
-
removeAction
Removes the given action from the category. FiresREMOVED_ACTION_PROPERTY
property change event, where old value is removed action. FiresCHANGE_ACTIONS_PROPERTY
(for backward compatibility) property change event, where old value is old actions list, new value is new actions list.- Overrides:
removeAction
in classNMAction
- Parameters:
action
- the given action to remove, parameter can be null.
-
getActions
Returns the list of the owned actions.- Overrides:
getActions
in classNMAction
- Returns:
- the cloned list of the actions.
-
getCategories
Gets inner action categories.- Returns:
- a list of action categories.
-
getActionsRecursively
Returns all simple actions (not ActionsCategory) recursively.- Parameters:
includeCategories
- If true, then ActionsCategories will be included in the list- Returns:
- all actions recursively
-
setActions
Sets the list of the new actions overriding old actions. FiresACTIONS_PROPERTY
(andCHANGE_ACTIONS_PROPERTY
for backward compatibility) property change event, where old value is old actions list, new value is new actions list.- Overrides:
setActions
in classNMAction
- Parameters:
actions
- the new list of the actions.
-
removeIf
Description copied from class:NMAction
Removes all of the owned actions that satisfy the given predicate -
forEach
Description copied from class:NMAction
Performs the given consumer for each owned action. Owned actions should not be added/removed inside consumer. -
forEachIncludingSelf
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 classNMAction
- Parameters:
consumer
- the action to be performed for each NMAction
-
clone
Clones the category. During clone does not fire any property change events. Does deep clone. -
shallowClone
Clones the category. During clone does not fire any property change events. Does deep clone.- Overrides:
shallowClone
in classNMAction
- 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:
-
accept
Accepts visitor and calls visit method of visitor. -
actionPerformed
Empty implementation.- Specified by:
actionPerformed
in interfaceActionListener
- Specified by:
actionPerformed
in classNMAction
- 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:
-
breakActions
Breaks given actions into subcategories of given category if the actions number exceeds predefined number.- Parameters:
category
- category to add created inner categoriesactions
- actions to break into categories
-
breakeActions
@Deprecated public static void breakeActions(ActionsCategory category, List<? extends NMAction> actions, int maxCategorySize, String categoryName, boolean nested) -
breakActions
public static void breakActions(ActionsCategory category, List<? extends NMAction> actions, int maxCategorySize, 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 categoriesactions
- actions to break into categoriesmaxCategorySize
- max size of inner categorycategoryName
- subcategory namenested
- make nested subcategories
-
breakActions
public static void breakActions(ActionsCategory category, List<? extends NMAction> actions, int maxCategorySize, 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 categoriesactions
- actions to break into categoriesmaxCategorySize
- max size of inner categorycategoryName
- subcategory namenested
- make nested subcategoriesinnerCategorySize
- maximum size of inner category
-
sort
public void sort() -
getAction
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
-
ACTIONS_PROPERTY
,ADDED_ACTION_PROPERTY
,REMOVED_ACTION_PROPERTY