|
org.openide.nodes 6.7.31 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.openide.util.SharedClassObject org.openide.util.actions.SystemAction org.openide.util.actions.CallableSystemAction org.openide.util.actions.NodeAction
public abstract class NodeAction
A type of action that listens on change in activated nodes selection and allows its subclasses to simply change their enabled state and handle action invocation requests.
Whenever a list of activated nodes changes (a new
TopComponent is selected or
its internal selection changes like in
explorer)
the overriden method enable(org.openide.nodes.Node[])
is called and state of the action is updated
according to the result. When the action is performed, the subclasses are
notified by a call to their performAction(Node[])
where they
can perform their operation on the currently selected array of nodes.
Note: if your action involves getting cookies from nodes, which in many cases is the correct design, please use CookieAction instead, as that permits sensitivity to cookies and also listens to changes in supplied cookies.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.openide.util.actions.Presenter |
---|
Presenter.Menu, Presenter.Popup, Presenter.Toolbar |
Nested classes/interfaces inherited from interface org.openide.util.actions.Presenter |
---|
Presenter.Menu, Presenter.Popup, Presenter.Toolbar |
Nested classes/interfaces inherited from interface org.openide.util.actions.Presenter |
---|
Presenter.Menu, Presenter.Popup, Presenter.Toolbar |
Field Summary |
---|
Fields inherited from class org.openide.util.actions.SystemAction |
---|
PROP_ENABLED, PROP_ICON |
Fields inherited from interface javax.swing.Action |
---|
ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SHORT_DESCRIPTION, SMALL_ICON |
Constructor Summary | |
---|---|
NodeAction()
|
Method Summary | |
---|---|
void |
actionPerformed(ActionEvent ev)
Deprecated. Using a special action event in this way is deprecated. Better is to use createContextAwareInstance(org.openide.util.Lookup) and pass
a lookup containing all desired Node instances. |
protected void |
addNotify()
Initializes selection listener. |
Action |
createContextAwareInstance(Lookup actionContext)
Implements ContextAwareAction interface method. |
protected abstract boolean |
enable(Node[] activatedNodes)
Test whether the action should be enabled based on the currently activated nodes. |
Node[] |
getActivatedNodes()
Get the currently activated nodes. |
protected void |
initialize()
|
boolean |
isEnabled()
Test for enablement based on enable(org.openide.nodes.Node[]) . |
void |
performAction()
Deprecated. Do not call this programmatically. Use createContextAwareInstance(org.openide.util.Lookup) to pass in a node selection.
Do not override this method. |
protected abstract void |
performAction(Node[] activatedNodes)
Perform the action based on the currently activated nodes. |
protected void |
removeNotify()
Shuts down the selection listener. |
void |
setEnabled(boolean e)
|
protected boolean |
surviveFocusChange()
Specify the behavior of the action when a window with no activated nodes is selected. |
Methods inherited from class org.openide.util.actions.CallableSystemAction |
---|
asynchronous, getMenuPresenter, getPopupPresenter, getToolbarPresenter |
Methods inherited from class org.openide.util.actions.SystemAction |
---|
clearSharedData, createPopupMenu, createToolbarPresenter, get, getHelpCtx, getIcon, getIcon, getName, getValue, iconResource, linkActions, putValue, setIcon |
Methods inherited from class org.openide.util.SharedClassObject |
---|
addPropertyChangeListener, equals, finalize, findObject, findObject, firePropertyChange, getLock, getProperty, hashCode, putProperty, putProperty, readExternal, removePropertyChangeListener, reset, writeExternal, writeReplace |
Methods inherited from class java.lang.Object |
---|
clone, getClass, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.swing.Action |
---|
addPropertyChangeListener, getValue, putValue, removePropertyChangeListener |
Constructor Detail |
---|
public NodeAction()
Method Detail |
---|
protected void initialize()
initialize
in class SystemAction
protected void addNotify()
addNotify
in class SharedClassObject
protected void removeNotify()
removeNotify
in class SharedClassObject
public boolean isEnabled()
enable(org.openide.nodes.Node[])
.
You probably ought not ever override this.
isEnabled
in interface Action
isEnabled
in class SystemAction
true
to enablepublic void setEnabled(boolean e)
setEnabled
in interface Action
setEnabled
in class SystemAction
public void actionPerformed(ActionEvent ev)
createContextAwareInstance(org.openide.util.Lookup)
and pass
a lookup containing all desired Node
instances.
performAction()
, that is using
the global node selection.
However you may call this directly, with an action event whose
source is either a node or an array of nodes, to invoke the action
directly on that nodes or nodes. If you do this, the action must
be such that it would be enabled on that node selection, otherwise
the action is not required to behave correctly (that is, it can
be written to assume that it is never called with a node selection
it is not enabled on).
actionPerformed
in interface ActionListener
actionPerformed
in class CallableSystemAction
ev
- action eventpublic void performAction()
createContextAwareInstance(org.openide.util.Lookup)
to pass in a node selection.
Do not override this method.
performAction(Node[])
.
performAction
in class CallableSystemAction
public final Node[] getActivatedNodes()
null
)protected boolean surviveFocusChange()
false
here; if the action should stay in the previous state,
return true
.
Note that getActivatedNodes()
and performAction()
are still
passed the set of selected nodes from the old window, if you keep this feature on.
This is useful, e.g., for an action like Compilation which should remain active
even if the user switches to a window like the Output Window that has no associated nodes;
then running the action will still use the last selection from e.g. an Explorer window
or the Editor, if there was one to begin with.
true
in the default implementationprotected abstract void performAction(Node[] activatedNodes)
activatedNodes
- current activated nodes, may be empty but not null
protected abstract boolean enable(Node[] activatedNodes)
activatedNodes
- current activated nodes, may be empty but not null
true
to be enabled, false
to be disabledpublic Action createContextAwareInstance(Lookup actionContext)
ContextAwareAction
interface method.
createContextAwareInstance
in interface ContextAwareAction
|
org.openide.nodes 6.7.31 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |