public abstract class JEditActionSet<E extends JEditAbstractEditAction> extends java.lang.Object implements InputHandlerProvider
actions.xml
- actions made available for use in jEdit views,
including the view's Plugins menu, the tool bar, etc.browser.actions.xml
- actions for the file system browser's
Plugins menu.<?xml version="1.0"?> <!DOCTYPE ACTIONS SYSTEM "actions.dtd"> <ACTIONS> <ACTION NAME="some-action"> <CODE> // BeanShell code evaluated when the action is invoked </CODE> </ACTION> <ACTION NAME="some-toggle-action"> <CODE> // BeanShell code evaluated when the action is invoked </CODE> <IS_SELECTED> // BeanShell code that should evaluate to true or false </IS_SELECTED> </ACTION> </ACTIONS>The following elements are valid:
ACTIONS
is the top-level element and refers
to the set of actions used by the plugin.
ACTION
contains the data for a particular action.
It has three attributes: a required NAME
;
an optional NO_REPEAT
, which is a flag
indicating whether the action should not be repeated with the
C+ENTER command; and an optional
NO_RECORD
which is a a flag indicating whether the
action should be recorded if it is invoked while the user is recording a
macro. The two flag attributes
can have two possible values, "TRUE" or
"FALSE". In both cases, "FALSE" is the
default if the attribute is not specified.
ACTION
can have two child elements
within it: a required CODE
element which
specifies the
BeanShell code that will be executed when the action is invoked,
and an optional IS_SELECTED
element, used for
checkbox
menu items. The IS_SELECTED
element contains
BeanShell code that returns a boolean flag that will
determine the state of the checkbox.
name.label
containing
the action's menu item label.
actions.xml
can be added to the view's
Plugins menu; see EditPlugin
.
The action code may use any standard predefined
BeanShell variable; see BeanShell
.
actions.xml
can be added to the file
system browser's Plugins menu; see EditPlugin
.
The action code may use any standard predefined
BeanShell variable, in addition to a variable browser
which
contains a reference to the current
VFSBrowser
instance.
File system browser actions should not define
<IS_SELECTED>
blocks.
jEdit.addActionSet(ActionSet)
to add a custom action set to
jEdit's action context. You must also call initKeyBindings()
for new
action sets. Don't forget to call jEdit.removeActionSet(ActionSet)
before your plugin is unloaded, too.Modifier and Type | Field and Description |
---|---|
protected java.util.HashMap<java.lang.String,JEditAbstractEditAction> |
actions |
protected boolean |
loaded |
protected static JEditAbstractEditAction |
placeholder |
protected java.net.URL |
uri |
Modifier | Constructor and Description |
---|---|
protected |
JEditActionSet()
Creates a new action set.
|
protected |
JEditActionSet(java.lang.String[] cachedActionNames,
java.net.URL uri)
Creates a new action set.
|
Modifier and Type | Method and Description |
---|---|
void |
addAction(E action)
Adds an action to the action set.
|
boolean |
contains(java.lang.String action) |
protected abstract JEditAbstractEditAction |
createBeanShellAction(java.lang.String actionName,
java.lang.String code,
java.lang.String selected,
boolean noRepeat,
boolean noRecord,
boolean noRememberLast)
This method should be implemented to return an action that will execute
the given code
|
E |
getAction(java.lang.String name) |
int |
getActionCount() |
java.lang.String[] |
getActionNames() |
E[] |
getActions() |
protected abstract E[] |
getArray(int size)
Returns an empty array E[].
|
java.lang.String[] |
getCacheableActionNames() |
protected abstract java.lang.String |
getProperty(java.lang.String name)
Returns a property for the given name.
|
void |
initKeyBindings()
Initializes the action set's key bindings.
|
void |
load()
Forces the action set to be loaded.
|
void |
removeAction(java.lang.String name)
Removes an action from the action set.
|
void |
removeAllActions()
Removes all actions from the action set.
|
int |
size() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getInputHandler
protected java.util.HashMap<java.lang.String,JEditAbstractEditAction> actions
protected java.net.URL uri
protected boolean loaded
protected static final JEditAbstractEditAction placeholder
protected JEditActionSet()
protected JEditActionSet(java.lang.String[] cachedActionNames, java.net.URL uri)
cachedActionNames
- The list of cached action namesuri
- The actions.xml URIpublic void addAction(E action)
action
- The actionpublic void removeAction(java.lang.String name)
name
- The action namepublic void removeAllActions()
public E getAction(java.lang.String name)
name
- The action nameDeferred loading: this will load the action set if necessary.
public int getActionCount()
public java.lang.String[] getActionNames()
public java.lang.String[] getCacheableActionNames()
BeanShellAction
s.protected abstract E[] getArray(int size)
size
- the size of the arraypublic E[] getActions()
Deferred loading: this will load the action set if necessary.
public boolean contains(java.lang.String action)
action
- The actionpublic int size()
public void load()
protected abstract JEditAbstractEditAction createBeanShellAction(java.lang.String actionName, java.lang.String code, java.lang.String selected, boolean noRepeat, boolean noRecord, boolean noRememberLast)
actionName
- the action namecode
- the codeselected
- selectednoRepeat
- noRepeatnoRecord
- noRecordnoRememberLast
- noRememberLastpublic void initKeyBindings()
Note if your plugin adds a custom action set to jEdit's collection, it must also call this method on the action set after adding it.
protected abstract java.lang.String getProperty(java.lang.String name)
name
- the property name