## The Dockable Window Catalog

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”.

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.

A formal description of each element of the `dockables.xml` file can be found in the documentation of the `DockableWindowManager` class.