public class NodeActionController extends java.lang.Object implements Controller
The controller expects the action to provide two string properties: a
template string to compute the label for a context with a single selection
(action key SINGLE_SELECTION_TEMPLATE_TEXT
); and a string
used to for a context with a multiple selection (action key
MULTIPLE_SELECTION_TEXT
). The update(oracle.ide.controller.IdeAction, oracle.ide.Context)
method uses these
strings to update the action name (action key Action.NAME
) to
reflect the current context. (The action name is the string typically
displayed by menu items and buttons tied to the action.) Note that if these
strings are not supplied, the controller will still function decently.
While the semantics of Context
are tighter than they used to be, the
selection semantics are still a little nebulous. This controller assumes,
among other things, that all the elements of a selection are either nodes or
node containers, or else are elements contained by a single node.
NodeActionDelegate
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
MULTIPLE_SELECTION_TEXT
Action property key for the text of the context-dependent action name for
a context containing multiple selected elements.
|
static java.lang.String |
SINGLE_SELECTION_TEMPLATE_TEXT
Action property key for the template text used to compute the
context-dependent action name for a context containing a single selected
element.
|
UPDATE_FROM_ACTION_PERFORMED, UPDATE_FROM_ACTIVE_VIEW_CHANGED, UPDATE_FROM_UNDO, UPDATE_FROM_USER_EXTENSION, UPDATE_FROM_VIEW_SELECTION_CHANGED
Constructor and Description |
---|
NodeActionController() |
Modifier and Type | Method and Description |
---|---|
void |
addDelegate(java.lang.Class nodeClass,
java.lang.Class delegateClass)
Adds a
NodeActionDelegate to this controller. |
protected NodeActionDelegate |
getDelegate(Node node) |
boolean |
handleEvent(IdeAction action,
Context context)
This method is called when a user interaction with a
View
triggers the execution of a command. |
protected void |
queueContainer(Element element,
Project project,
Workspace workspace,
IdeAction action,
java.util.Map<URLKey,oracle.jdeveloper.controller.NodeActionController.NodeHandler> queue) |
boolean |
update(IdeAction action,
Context context)
This method updates the enabled status of the specified action within the
specified context.
|
public static final java.lang.String SINGLE_SELECTION_TEMPLATE_TEXT
"{0}"
.public static final java.lang.String MULTIPLE_SELECTION_TEXT
public void addDelegate(java.lang.Class nodeClass, java.lang.Class delegateClass)
NodeActionDelegate
to this controller.public boolean update(IdeAction action, Context context)
update
in interface Controller
action
- action whose command is to be executed.context
- the current contextpublic boolean handleEvent(IdeAction action, Context context)
View
triggers the execution of a command.
Executes the controlled action through the delegates.handleEvent
in interface Controller
action
- action whose command is to be executed.protected NodeActionDelegate getDelegate(Node node)