A Dockable is a window that can float like a dialog, or dock into jEdit's docking area. Each dockable needs a label (for display in menus, and on small buttons) and a title (for display in the floating window's title bar).
The jEdit plugin API uses BeanShell to create the top-level
visible container of a plugin's interface. The BeanShell code is
contained in a file named dockables.xml
. It usually
is quite short, providing only a single BeanShell expression used to
create a visible plugin window.
The following example from the QuickNotepad plugin illustrates the requirements of the data file:
<?xml version="1.0"?> <!DOCTYPE DOCKABLES SYSTEM "dockables.dtd"> <DOCKABLES> <DOCKABLE NAME="quicknotepad"> new QuickNotepad(view, position); </DOCKABLE> </DOCKABLES>
In this example, the <DOCKABLE>
element has a single attribute, the dockable window's identifier. This
attribute is used to key a property where the window title is stored;
see the section called “The Property File”.
For each dockable, jedit defines an action with the same name. This means you do not need to define an explicit action to create your dockable - in fact, jEdit defines three actions: "toggle", "get" and "new floating instance" for each.
The contents of the <DOCKABLE>
element itself is a BeanShell expression that constructs a new
QuickNotepad
object. The view
and position
are predefined by the plugin API as the
view in which the plugin window will reside, and the docking position of
the plugin. You can use position
to customize the
layout of your plugin depending on whether it appears on the sides, or
the top/bottom, or as a floating dockable.
A formal description of each element of the
dockables.xml
file can be found in the
documentation of the
DockableWindowManager
class. This class
also contains the public interface you should use for getting, showing,
hiding, and other interactions with the plugin's top-level
windows.