java.lang.Object
org.gjt.sp.jedit.JEditActionSet<E>
- All Implemented Interfaces:
InputHandlerProvider
- Direct Known Subclasses:
ActionSet
,StandaloneTextArea.StandaloneActionSet
public abstract class JEditActionSet<E extends JEditAbstractEditAction>
extends Object
implements InputHandlerProvider
A set of actions, either loaded from an XML file, or constructed at runtime
by a plugin.
Action sets loaded from XML files
Action sets are read from these files inside the plugin JAR: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. -
An
ACTION
contains the data for a particular action. It has three attributes: a requiredNAME
; an optionalNO_REPEAT
, which is a flag indicating whether the action should not be repeated with the C+ENTER command; and an optionalNO_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. -
An
ACTION
can have two child elements within it: a requiredCODE
element which specifies the BeanShell code that will be executed when the action is invoked, and an optionalIS_SELECTED
element, used for checkbox menu items. TheIS_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.
View actions
Actions defined inactions.xml
can be added to the view's
Plugins menu; see EditPlugin
.
The action code may use any standard predefined
BeanShell variable; see BeanShell
.
File system browser actions
Actions defined inactions.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.
Custom action sets
CalljEdit.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.- Since:
- jEdit 4.3pre13
- Version:
- $Id: ActionSet.java 9529 2007-05-12 15:06:52Z ezust $
- Author:
- Slava Pestov, John Gellene (API documentation)
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprotected HashMap<String,
JEditAbstractEditAction> protected boolean
protected static final JEditAbstractEditAction
protected URL
-
Constructor Summary
ModifierConstructorDescriptionprotected
Creates a new action set.protected
JEditActionSet
(String[] cachedActionNames, URL uri) Creates a new action set. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds an action to the action set.boolean
protected abstract JEditAbstractEditAction
createBeanShellAction
(String actionName, String code, String selected, boolean noRepeat, boolean noRecord, boolean noRememberLast) This method should be implemented to return an action that will execute the given codeint
String[]
E[]
protected abstract E[]
getArray
(int size) Returns an empty array E[].String[]
protected abstract String
getProperty
(String name) Returns a property for the given name.void
Initializes the action set's key bindings.void
load()
Forces the action set to be loaded.void
removeAction
(String name) Removes an action from the action set.void
Removes all actions from the action set.int
size()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.gjt.sp.jedit.input.InputHandlerProvider
getInputHandler
-
Field Details
-
actions
-
uri
-
loaded
protected boolean loaded -
placeholder
-
-
Constructor Details
-
JEditActionSet
protected JEditActionSet()Creates a new action set.- Since:
- jEdit 4.3pre13
-
JEditActionSet
Creates a new action set.- Parameters:
cachedActionNames
- The list of cached action namesuri
- The actions.xml URI- Since:
- jEdit 4.3pre13
-
-
Method Details
-
addAction
Adds an action to the action set.- Parameters:
action
- The action- Since:
- jEdit 4.0pre1
-
removeAction
Removes an action from the action set.- Parameters:
name
- The action name- Since:
- jEdit 4.0pre1
-
removeAllActions
public void removeAllActions()Removes all actions from the action set.- Since:
- jEdit 4.0pre1
-
getAction
- Parameters:
name
- The action name- Returns:
- an action with the specified name.
Deferred loading: this will load the action set if necessary.
- Since:
- jEdit 4.0pre1
-
getActionCount
public int getActionCount()- Returns:
- the number of actions in the set.
- Since:
- jEdit 4.0pre1
-
getActionNames
- Returns:
- an array of all action names in this action set.
- Since:
- jEdit 4.2pre1
-
getCacheableActionNames
- Returns:
- an array of all action names in this action set that should
be cached; namely,
BeanShellAction
s. - Since:
- jEdit 4.2pre1
-
getArray
Returns an empty array E[]. I know it is bad, if you find a method to instantiate a generic Array, tell me- Parameters:
size
- the size of the array- Returns:
- the empty array
-
getActions
- Returns:
- an array of all actions in this action set.
Deferred loading: this will load the action set if necessary.
- Since:
- jEdit 4.0pre1
-
contains
- Parameters:
action
- The action- Returns:
- if this action set contains the specified action.
- Since:
- jEdit 4.2pre1
-
size
public int size()- Returns:
- the number of actions in this action set.
- Since:
- jEdit 4.2pre2
-
load
public void load()Forces the action set to be loaded. Plugins and macros should not call this method.- Since:
- jEdit 4.2pre1
-
createBeanShellAction
protected abstract JEditAbstractEditAction createBeanShellAction(String actionName, String code, String selected, boolean noRepeat, boolean noRecord, boolean noRememberLast) This method should be implemented to return an action that will execute the given code- Parameters:
actionName
- the action namecode
- the codeselected
- selectednoRepeat
- noRepeatnoRecord
- noRecordnoRememberLast
- noRememberLast- Returns:
- an action
- Since:
- 4.3pre13
-
initKeyBindings
public void initKeyBindings()Initializes the action set's key bindings. jEdit calls this method for all registered action sets when the user changes key bindings in the Global Options dialog box.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.
- Since:
- jEdit 4.2pre1
-
getProperty
Returns a property for the given name. In jEdit it will returns a jEdit.getProperty(name), but it can return something else for a standalone textarea.- Parameters:
name
- the property name- Returns:
- the property value
- Since:
- 4.3pre13
-