Package com.nomagic.actions
Class ActionsManager
java.lang.Object
com.nomagic.actions.ActionsManager
- All Implemented Interfaces:
Cloneable
- Direct Known Subclasses:
MDActionsManager
The class responsible for managing the actions and categories.
It has a list of categories and the helper maps where actions are registered by shortcuts and by id.
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
The action property change listener class. -
Field Summary
Modifier and TypeFieldDescriptionstatic final String
A key for Boolean which marks action with modified shortcuts in UI -
Constructor Summary
ConstructorDescriptionCreates the actions manager.ActionsManager
(ActionsManager parent) Creates the actions manager. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addActionNearTheGiven
(String givenID, boolean addAfter, NMAction action) Adds given action near the action with the given id.void
addActionNearTheGiven
(String givenID, boolean addAfter, NMAction action, ActionsCategory defaultCategory) Adds given action near the action with the given id.void
addCategory
(int index, ActionsCategory category) Adds the given category to the manager.void
addCategory
(ActionsCategory category) Adds the given category to the manager.void
addCategory
(ActionsCategory relatedCategory, ActionsCategory category, boolean addAfter) Adds the given category to the manager.void
addCategory
(String relatedCategoryID, ActionsCategory category, boolean addAfter) Adds the given category to the manager.clone()
Clones the manager.static MDAction
Constructs a none action.protected com.nomagic.actions.ActionsCache
void
void
Performs the given consumer for each owned action.void
forEachIncludingSelf
(Consumer<NMAction> consumer) Performs the given consumer for each owned action including self.getActionFor
(String id) Returns the action for given id.getActionFor
(KeyStroke stroke) Returns the action for given stroke.getActionParent
(NMAction action) Returns parent action for given action.getActionsCategoryRecursively
(List<ActionsCategory> categories, String id) Recursively finds an action category with a given id.Returns the list of all actions registered in this manager.getAllOrderedActions
(boolean includeCategories) Returns the list if all ordered actions registered in this manager.Returns the list of the categories.getCategory
(String id) Returns the category with given id.Returns last category by order.protected com.nomagic.actions.ActionsCache
Returns the actions manager parent.boolean
isEmpty()
makeCopy()
Copies this manager and adds property change listeners to all actions in order to have the same action state in source and copy.static void
markShortcutsModified
(Action action) Add a mark that shortcuts are modified externally in UIvoid
removeAction
(NMAction action) Removes action from this manager.void
removeAction
(NMAction action, NMAction parent) Removes action with given ID from this manager.void
removeAction
(String actionID) Removes action with given ID from this manager.void
Removes all actions.void
removeCategory
(ActionsCategory category) Removes the given category from the manager.void
Removes all of the actions of this manager that satisfy the given predicatevoid
setCategories
(List<? extends ActionsCategory> list) Sets the list of the categories.void
setParent
(ActionsManager parent) Sets the actions manager parent.void
updateCommandKeysFrom
(ActionsManager manager) Deprecated.void
updateShortcutsFrom
(ActionsManager manager) Takes all action from the given manager with modified shortcuts and overwrites the shortcuts for actions in this manager.void
Calls updateState() method for all inner actions.
-
Field Details
-
SHORTCUTS_MODIFIED
A key for Boolean which marks action with modified shortcuts in UI- See Also:
-
-
Constructor Details
-
ActionsManager
Creates the actions manager.- Parameters:
parent
- the parent of the actions manager. May be null.
-
ActionsManager
public ActionsManager()Creates the actions manager.
-
-
Method Details
-
markShortcutsModified
Add a mark that shortcuts are modified externally in UI- Parameters:
action
- action
-
getCategories
Returns the list of the categories.- Returns:
- the cloned list of the categories.
-
getActionsCategoryRecursively
@CheckForNull public ActionsCategory getActionsCategoryRecursively(List<ActionsCategory> categories, String id) Recursively finds an action category with a given id.- Parameters:
categories
- categories to search.id
- id of a category to find.- Returns:
- found action category or null if it is not found.
-
setCategories
Sets the list of the categories. All old actions will be unregistered and new registered.- Parameters:
list
- the list of the categories.
-
addCategory
Adds the given category to the manager. The actions from the given category will be registered.- Parameters:
category
- the given category.
-
addCategory
Adds the given category to the manager. The actions from the given category will be registered.- Parameters:
category
- the given category.index
- index where category will be added.
-
removeCategory
Removes the given category from the manager. The actions from the given category will be unregistered.- Parameters:
category
- the given category.
-
addCategory
Adds the given category to the manager. The actions from the given category will be registered.- Parameters:
relatedCategoryID
- related category idcategory
- the given categoryaddAfter
- add after related category or before related category
-
addCategory
public void addCategory(@CheckForNull ActionsCategory relatedCategory, ActionsCategory category, boolean addAfter) Adds the given category to the manager. The actions from the given category will be registered.- Parameters:
relatedCategory
- related categorycategory
- the given categoryaddAfter
- add after related category or before related category
-
getCategory
Returns the category with given id.- Parameters:
id
- the id of the category.- Returns:
- the category with given id or null if this manager does not have such category.
-
updateCommandKeysFrom
Deprecated. -
updateShortcutsFrom
Takes all action from the given manager with modified shortcuts and overwrites the shortcuts for actions in this manager.- Parameters:
manager
- the given manager.- See Also:
-
getAllActions
Returns the list of all actions registered in this manager.- Returns:
- the list of all registered actions.
-
removeIf
Removes all of the actions of this manager that satisfy the given predicate- Parameters:
filter
- given predicate
-
forEachIncludingSelf
Performs the given consumer for each owned action including self. Owned actions should not be added/removed inside consumer.- Parameters:
consumer
- the action to be performed for each NMAction- See Also:
-
forEach
Performs the given consumer for each owned action. Owned actions should not be added/removed inside consumer.- Parameters:
consumer
- the action to be performed for each NMAction- See Also:
-
isEmpty
public boolean isEmpty()- Returns:
- true if this manager currently contains no actions, false if there are actions. Parent actions are not considered
-
getAllOrderedActions
Returns the list if all ordered actions registered in this manager.- Parameters:
includeCategories
- If true, then ActionsCategories will be included in the list- Returns:
- the list of all registered actions.
-
removeAllActions
public void removeAllActions()Removes all actions. -
getActionFor
Returns the action for given stroke. If this manager does not have such action, it looks in the parent.- Parameters:
stroke
- stroke- Returns:
- the action for given stroke or null if there are no action with such stroke.
-
getActionFor
Returns the action for given id. If this manager does not have such action, it looks in the parent.- Parameters:
id
- action id- Returns:
- the action for given id or null if there are no action with such id.
-
getIdToActionMap
-
clone
Clones the manager. Does deep clone. -
dropCache
public void dropCache() -
setParent
Sets the actions manager parent.- Parameters:
parent
- the new parent.
-
getParent
Returns the actions manager parent.- Returns:
- parent.
-
getActionParent
Returns parent action for given action. Searches for the action object itself, if a provided object is not found actions are compared using equals(by action ID).- Parameters:
action
- the given action.- Returns:
- parent of given action.
-
makeCopy
Copies this manager and adds property change listeners to all actions in order to have the same action state in source and copy.- Returns:
- copied manager.
-
updateStateForAllActions
public void updateStateForAllActions()Calls updateState() method for all inner actions.- See Also:
-
getLastActionsCategory
Returns last category by order.- Returns:
- last category
-
removeAction
Removes action with given ID from this manager. Searches for action parent, removes action from it's parent and removes parent if it does not have any more actions. If given ID is id of root category(added into manager), removes this category.- Parameters:
actionID
- actionID id of action to remove.
-
removeAction
Removes action from this manager.- Parameters:
action
- action to remove.
-
removeAction
Removes action with given ID from this manager. Takes given parent, removes action from it's parent and removes parent if it does not have any more actions. If given ID is id of root category(added into manager), removes this category.- Parameters:
action
- action to remove.parent
- parent of action to remove from.
-
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.
-
addActionNearTheGiven
public void addActionNearTheGiven(@CheckForNull String givenID, boolean addAfter, @CheckForNull NMAction action, @CheckForNull ActionsCategory defaultCategory) 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 adddefaultCategory
- category to add action into if action with givenID does not exist. Last category from manager is used if defaultCategory is null
-
getOrCreateCache
@InternalApi protected com.nomagic.actions.ActionsCache getOrCreateCache() -
createCache
@InternalApi protected com.nomagic.actions.ActionsCache createCache() -
constructNoneAction
Constructs a none action.- Returns:
- created none action.
-
updateShortcutsFrom(ActionsManager)