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
FieldsModifier and TypeFieldDescriptionstatic final StringProperty Change event name fired when actions of this category were changed.static final StringProperty Change event name fired when new action is added.static final StringDeprecated.static final StringA name of property to disable the category if it has no actions.static final intDefault value limiting maximum action count in one categorystatic final StringA name of property to drop the category if it has no actions.static final StringProperty Change event name fired when new action is removed.static final StringA 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_ICONFields inherited from class javax.swing.AbstractAction
changeSupport, enabledFields 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
ConstructorsConstructorDescriptionCreates 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 TypeMethodDescriptionvoidaccept(ActionsVisitor visitor) Accepts visitor and calls visit method of visitor.voidEmpty implementation.voidAdds the given action to the category.voidAdds the given action at the specified position to the category.voidaddActionNearTheGiven(String givenID, boolean addAfter, NMAction action) Adds given action near the action with the given id.voidaddActions(List<? extends NMAction> actions) Adds given actions to the category.static voidbreakActions(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 voidbreakActions(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 voidbreakActions(ActionsCategory category, List<NMAction> actions) Breaks given actions into subcategories of given category if the actions number exceeds predefined number.static voidbreakeActions(ActionsCategory category, List<? extends NMAction> actions, int maxCategorySize, String categoryName, boolean nested) clone()Clones the category.static ActionsCategoryvoidPerforms the given consumer for each owned action.voidforEachIncludingSelf(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.booleanbooleanisEmpty()booleanisNested()Returns value of nested flag.booleanReturns value of nested flag.voidremoveAction(NMAction action) Removes the given action from the category.voidRemoves all of the owned actions that satisfy the given predicatevoidsetActions(List<? extends NMAction> actions) Sets the list of the new actions overriding old actions.voidsetDisplayHeader(boolean displayHeader) Display category name as header of category.voidsetNested(boolean nested) Sets new value of nested flag.voidsetUseActionForDisable(boolean use) Clones the category.intsize()Size of category - number of inner actions.voidsort()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, updateStateMethods 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_PROPERTYproperty 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_PROPERTYfor 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_PROPERTYproperty 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_PROPERTYproperty 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:
removeActionin classNMAction- Parameters:
action- the given action to remove, parameter can be null.
-
getActions
Returns the list of the owned actions.- Overrides:
getActionsin 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_PROPERTYfor backward compatibility) property change event, where old value is old actions list, new value is new actions list.- Overrides:
setActionsin classNMAction- Parameters:
actions- the new list of the actions.
-
removeIf
Description copied from class:NMActionRemoves all of the owned actions that satisfy the given predicate -
forEach
Description copied from class:NMActionPerforms the given consumer for each owned action. Owned actions should not be added/removed inside consumer. -
forEachIncludingSelf
Description copied from class:NMActionPerforms the given consumer for each owned action including self. Owned actions should not be added/removed inside consumer.- Overrides:
forEachIncludingSelfin 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:
shallowClonein 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:
actionPerformedin interfaceActionListener- Specified by:
actionPerformedin 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