org.gjt.sp.jedit
Class ActionSet

java.lang.Object
  extended by org.gjt.sp.jedit.JEditActionSet<EditAction>
      extended by org.gjt.sp.jedit.ActionSet
All Implemented Interfaces:
java.lang.Comparable, InputHandlerProvider

public class ActionSet
extends JEditActionSet<EditAction>
implements java.lang.Comparable

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: An action definition file has the following form:
<?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: Each action must have a property name.label containing the action's menu item label.

View actions

Actions defined in 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.

File system browser actions

Actions defined in 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.

Custom action sets

Call jEdit.addActionSet(ActionSet) to add a custom action set to jEdit's action context. You must also call JEditActionSet.initKeyBindings() for new action sets. Don't forget to call jEdit.removeActionSet(ActionSet) before your plugin is unloaded, too.

Since:
jEdit 4.0pre1
See Also:
jEdit.getActionContext(), VFSBrowser.getActionContext(), JEditActionContext.getActionNames(), ActionContext.getAction(String), jEdit.addActionSet(ActionSet), jEdit.removeActionSet(ActionSet), PluginJAR.getActionSet(), BeanShell, View

Field Summary
 
Fields inherited from class org.gjt.sp.jedit.JEditActionSet
actions, loaded, placeholder, uri
 
Constructor Summary
ActionSet()
          Creates a new action set.
ActionSet(PluginJAR plugin, java.lang.String[] cachedActionNames, boolean[] cachedActionToggleFlags, java.net.URL uri)
          Creates a new action set.
ActionSet(java.lang.String label)
          Creates a new action set.
 
Method Summary
 void addAction(EditAction action)
          Adds an action to the action set.
 int compareTo(java.lang.Object o)
           
protected  EditAction createBeanShellAction(java.lang.String actionName, java.lang.String code, java.lang.String selected, boolean noRepeat, boolean noRecord, boolean noRememberLast)
          Creates a BeanShellAction.
 EditAction[] getActions()
          Returns an array of all actions in this action set.
protected  EditAction[] getArray(int size)
          Returns an empty array E[].
 java.lang.String[] getCacheableActionNames()
          Returns an array of all action names in this action set that should be cached; namely, BeanShellActions.
 AbstractInputHandler getInputHandler()
           
 java.lang.String getLabel()
          Return the action source label.
 PluginJAR getPluginJAR()
          Return the plugin this action set was loaded from, or null.
protected  java.lang.String getProperty(java.lang.String name)
          Returns a property for the given name.
 void setLabel(java.lang.String label)
          Sets the action source label.
 java.lang.String toString()
           
 
Methods inherited from class org.gjt.sp.jedit.JEditActionSet
contains, getAction, getActionCount, getActionNames, initKeyBindings, load, removeAction, removeAllActions, size
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ActionSet

public ActionSet()
Creates a new action set.

Since:
jEdit 4.0pre1

ActionSet

public ActionSet(PluginJAR plugin,
                 java.lang.String[] cachedActionNames,
                 boolean[] cachedActionToggleFlags,
                 java.net.URL uri)
Creates a new action set.

Parameters:
plugin - The plugin
cachedActionNames - The list of cached action names
cachedActionToggleFlags - The list of cached action toggle flags
uri - The actions.xml URI
Since:
jEdit 4.2pre2

ActionSet

public ActionSet(java.lang.String label)
Creates a new action set.

Parameters:
label - The label, shown in the shortcuts option pane
Since:
jEdit 4.0pre1
Method Detail

addAction

public void addAction(EditAction action)
Adds an action to the action set. It exists for binary compatibility issues

Overrides:
addAction in class JEditActionSet<EditAction>
Parameters:
action - The action
Since:
jEdit 4.0pre1

getArray

protected EditAction[] getArray(int size)
Description copied from class: JEditActionSet
Returns an empty array E[]. I know it is bad, if you find a method to instantiate a generic Array, tell me

Specified by:
getArray in class JEditActionSet<EditAction>
Parameters:
size - the size of the array
Returns:
the empty array

getActions

public EditAction[] getActions()
Returns an array of all actions in this action set.

Deferred loading: this will load the action set if necessary.

Overrides:
getActions in class JEditActionSet<EditAction>
Since:
jEdit 4.0pre1

getLabel

public java.lang.String getLabel()
Return the action source label.

Since:
jEdit 4.0pre1

setLabel

public void setLabel(java.lang.String label)
Sets the action source label.

Parameters:
label - The label
Since:
jEdit 4.0pre1

getPluginJAR

public PluginJAR getPluginJAR()
Return the plugin this action set was loaded from, or null.

Since:
jEdit 4.2pre13

getCacheableActionNames

public java.lang.String[] getCacheableActionNames()
Returns an array of all action names in this action set that should be cached; namely, BeanShellActions.

Overrides:
getCacheableActionNames in class JEditActionSet<EditAction>
Since:
jEdit 4.2pre1

getProperty

protected java.lang.String getProperty(java.lang.String name)
Description copied from class: JEditActionSet
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.

Specified by:
getProperty in class JEditActionSet<EditAction>
Parameters:
name - the property name
Returns:
the property value

getInputHandler

public AbstractInputHandler getInputHandler()
Specified by:
getInputHandler in interface InputHandlerProvider

compareTo

public int compareTo(java.lang.Object o)
Specified by:
compareTo in interface java.lang.Comparable

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

createBeanShellAction

protected EditAction createBeanShellAction(java.lang.String actionName,
                                           java.lang.String code,
                                           java.lang.String selected,
                                           boolean noRepeat,
                                           boolean noRecord,
                                           boolean noRememberLast)
Creates a BeanShellAction.

Specified by:
createBeanShellAction in class JEditActionSet<EditAction>
Since:
4.3pre13