public abstract class DelegateAction extends AbstractAction
delegateActionPerformed(java.awt.event.ActionEvent)
. There are two usages of it. First, you
can use replaceAction(javax.swing.JComponent, int, javax.swing.KeyStroke, DelegateAction)
to replace the action
associated with the specified keystroke with the DelegateAction. The DelegateAction will be triggered when the
keystroke is pressed. After DelegateAction is done, it can return true or false. If false, the original action
associated with the keystroke will be triggered as well. This solves the problem that JComponent.registerKeyboardAction(java.awt.event.ActionListener, String, javax.swing.KeyStroke, int)
will replace the
original action so that the original action will never be triggered.
The second way to use DelegateAction is to delegate the action from one component to another component using replaceAction(javax.swing.JComponent, int, javax.swing.JComponent, int, javax.swing.KeyStroke, DelegateAction)
. In this
case, the keystroke on the first component parameter will be triggered the DelegateAction. If DelegateAction returns
false, the registered action on the second component parameter will be triggered. If you pass in DelegateAction.PassthroughDelegateAction
, the registered action on the second component will always be triggered.
Please notes, if you call replaceAction several times on the same component with the same keystroke, it will form a
chain of DelegateActions. In this case, the first call will be the first DelegateAction. In the other words, the
first one will have the highest priority and will be triggered first. Ideally, we should assign a priority to each
DelegateAction. But for the sake of simplicity, we decided not doing it for now. So because of this, this class is
not ready to be used as public API. We have to make it public because different packages in JIDE need to use it. If
you want to use, please use it with caution. We don't guarantee that we will not change the public methods on this
classes.
Modifier and Type | Class and Description |
---|---|
static class |
DelegateAction.PassthroughDelegateAction |
changeSupport, enabled
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 and Description |
---|
DelegateAction() |
DelegateAction(Action action) |
DelegateAction(Action action,
JComponent target) |
Modifier and Type | Method and Description |
---|---|
void |
actionPerformed(ActionEvent e) |
abstract boolean |
delegateActionPerformed(ActionEvent e)
Performs an action.
|
protected Action |
getAction() |
protected JComponent |
getTarget() |
boolean |
isDelegateEnabled()
Checks if an action can be performed.
|
boolean |
isEnabled()
Returns true if either delegateIsEnabled or the action is enabled.
|
static void |
replaceAction(JComponent component,
int condition,
JComponent target,
int targetCondition,
KeyStroke keyStroke) |
static void |
replaceAction(JComponent component,
int condition,
JComponent target,
int targetCondition,
KeyStroke keyStroke,
DelegateAction delegateAction) |
static void |
replaceAction(JComponent component,
int condition,
JComponent target,
int targetCondition,
KeyStroke keyStroke,
DelegateAction delegateAction,
boolean first) |
static void |
replaceAction(JComponent component,
int condition,
KeyStroke keyStroke,
DelegateAction delegateAction) |
static void |
replaceAction(JComponent component,
int condition,
KeyStroke keyStroke,
DelegateAction delegateAction,
boolean first) |
static void |
restoreAction(JComponent component,
int condition,
KeyStroke keyStroke) |
static void |
restoreAction(JComponent component,
int condition,
KeyStroke keyStroke,
Action actionToBeRemoved) |
static void |
restoreAction(JComponent component,
int condition,
KeyStroke keyStroke,
Class<?> actionClass) |
protected void |
setAction(Action action) |
protected void |
setTarget(JComponent target) |
addPropertyChangeListener, clone, firePropertyChange, getKeys, getPropertyChangeListeners, getValue, putValue, removePropertyChangeListener, setEnabled
public DelegateAction()
public DelegateAction(Action action)
public DelegateAction(Action action, JComponent target)
public boolean isEnabled()
isEnabled
in interface Action
isEnabled
in class AbstractAction
public final void actionPerformed(ActionEvent e)
protected Action getAction()
protected void setAction(Action action)
protected JComponent getTarget()
protected void setTarget(JComponent target)
public boolean isDelegateEnabled()
true
if the action can be performed.public abstract boolean delegateActionPerformed(ActionEvent e)
e
- the action event.public static void replaceAction(JComponent component, int condition, KeyStroke keyStroke, DelegateAction delegateAction)
public static void replaceAction(JComponent component, int condition, KeyStroke keyStroke, DelegateAction delegateAction, boolean first)
public static void replaceAction(JComponent component, int condition, JComponent target, int targetCondition, KeyStroke keyStroke)
public static void replaceAction(JComponent component, int condition, JComponent target, int targetCondition, KeyStroke keyStroke, DelegateAction delegateAction)
public static void replaceAction(JComponent component, int condition, JComponent target, int targetCondition, KeyStroke keyStroke, DelegateAction delegateAction, boolean first)
public static void restoreAction(JComponent component, int condition, KeyStroke keyStroke)
public static void restoreAction(JComponent component, int condition, KeyStroke keyStroke, Class<?> actionClass)
public static void restoreAction(JComponent component, int condition, KeyStroke keyStroke, Action actionToBeRemoved)