Jaxe, your XML editor
Jaxe, your XML editor

Developer Guide
• Introduction
• Using Jaxe within another application
• Creation of new Jaxe elements
• Adding a function

# Using Jaxe within another application

Author: Damien Guillaume

Jaxe's startup class is (unsurprisingly) `jaxe.Jaxe`. This class gathers external events handling (file opening, closing, etc...), so it can be useful to take a look at it to see how a new Jaxe document is created or opened.

Another important class is `jaxe.JaxeFrame`. This class relates to an XML document window. It is using the class `jaxe.JaxeMenuBar` to handle the menubar, this one being unfortunately (because of a shortcoming of Java) linked to the window.

The easiest way to include Jaxe in another application is probably to use the class `jaxe.JaxeTextPane`, which represents the text area in the XML window. Since this class is derived from `java.swing.JTextPane`, it can easily be added wherever required, according to the host application layout. The constructor requires a `JaxeDocument` (linked to the DOM) and a `JFrame` (the parent window).

The object of class `jaxe.JaxeDocument` has to be initialised with a Jaxe configuration file (handled by the class `jaxe.Config`) and possibly with an XML file or with a DOM object.

To sum up, here is a list of instructions to include a Jaxe text area in a `parent` `Container` located in a given `frame`:

    JaxeDocument jaxeDoc = new JaxeDocument("mylanguage_config.xml");
    JaxeTextPane jaxeTextPane = new JaxeTextPane(jaxeDoc, frame);
    jaxeDoc.lire(xmlFileURL);
    // or jaxeDoc.setDOMDoc(domDocument);
    parent.add(jaxeTextPane);

Elements can be inserted with the contextual menu, or with `jaxe.ActionInsertionBalise` actions. The constructor for `ActionInsertionBalise` requires the Jaxe document, and the DOM element corresponding to the definition of the element in the Jaxe configuration file.

The document can later be saved with the method `JaxeDocument.ecrire(File f)`.