Chapter 1. Introduction
Prev |  | Next

# Chapter 1. Introduction

The user interface (GUI) of XMLmind XML Editor is made of parts. Parts are high level building blocks such as menus, menu bars, tool bars, status bars, actions (for use in menus, tool bars and status bars), etc.

These parts are declared in a special GUI specification file having a `.xxe_gui` suffix. Such GUI specification files also contain a `layout` element which specifies which assembly of parts to use to create the user interface of XMLmind XML Editor.

Example (excerpts of Professional.xxe_gui):

    <?xml version='1.0' encoding='UTF-8'?>
    <gui xmlns="http://www.xmlmind.com/xmleditor/schema/gui"
         xmlns:gui="http://www.xmlmind.com/xmleditor/schema/gui">
      ...
      <action name="newAction" label="_New..."
              icon="icons/newAction.gif"
              accelerator="mod N">
        <class>com.xmlmind.xmleditapp.kit.part.NewAction</class>
      </action>
      ...
      <menu name="fileMenu" label="_File"
            helpId="fileMenu">
        <action name="newAction" />
        <action name="openAsTemplateAction" />
        ...
        <menuItems name="recentFilesMenuItems" />
      </menu>
      ...
      <menuBar name="menuBar" helpId="menuBar">
        <menu name="fileMenu" />
        <menu name="selectMenu" />
        ...
      </menuBar>
      ...
      <layout width="850" height="650">
        <menuBar name="menuBar" />
        ...
      </layout>
    </gui>

| Declares action "`newAction`".
| Declares menu "`fileMenu`".
| Declares menu bar "`menuBar`".
| Element `layout` actually specifies which GUI to create.
| It is menu bar "`menuBar`" which will be used in the GUI of XXE because it is referenced in the `layout` element.

### Important

Declaring a part does not mean that this part will be created and then, displayed in the GUI of XXE. For this to happen, a part must be referenced directly or indirectly[1] by the `layout` element of the GUI specification file.

`Xxe_app.jar`, the archive file containing the code of XMLmind XML Editor (XXE for short), also contains a number of GUI specifications:

Resource `/gui/app/Professional.xxe_gui`

  Specifies the default user interface of XMLmind XML Editor Professional Edition. By doing this, it also specifies the user interface parts which are common to all XMLmind XML Editor variants.

Resource `/gui/applet/Viewer.xxe_gui`

  Specifies the user interface of the viewer applet. More information about the different applets in Section 4.3.2, “The four different kinds of applet” in XMLmind XML Editor - Configuration and Deployment.

Resource `/gui/applet/Editor1.xxe_gui`

  Specifies the user interface of the editor1 applet.

Resource `/gui/applet/Editor2.xxe_gui`

  Specifies the user interface of the editor2 applet.

Resource `/gui/applet/Professional.xxe_gui`

  Specifies the user interface of the xxe applet (same as the desktop application, except that it has no File → Quit menu item).

A copy of these files is found in ``XXE_install_dir`/doc/gui/gui/`. This, because using Professional.xxe_gui as a reference when creating custom GUIs for XXE is absolutely required.

If you are curious and want to see the effect of using Editor1.xxe_gui, the GUI of an applet, on the desktop application, please proceed as follows:

Windows

  1. Open a command prompt.

  2. Change working directory to the directory where XXE has been installed (typically `C:\Program Files\XMLmind_XML_Editor\`).

  3. Change to subdirectory `bin\` where `xxe.exe` (and `xxe.bat`) are found.

  4. Set environment variable `XXE_GUI` as follows:

         C:\Program Files\XMLmind_XML_Editor\bin> set XXE_GUI=xxe-gui:applet/Editor1.xxe_gui

  5. Start XXE as follows:

         C:\Program Files\XMLmind_XML_Editor\bin> xxe.exe

Linux, Mac (with `bash`)

  1. Open a terminal.

  2. Change working directory to the directory where XXE has been installed (example: `/opt/xxe/`).

  3. Change to subdirectory `bin\` where the `xxe` shell script is found.

  4. Set environment variable `XXE_GUI` as follows[2]:

         /opt/xxe/bin$ XXE_GUI=xxe-gui:applet/Editor1.xxe_gui; export XXE_GUI

  5. Start XXE as follows:

         /opt/xxe/bin$ ./xxe &

Don't worry, all this will be detailed in the deployment chapter of this document.

[1] Example: layout references a statusBar which references an action.

[2] Quicker, directly execute this:

    /opt/xxe/bin$ XXE_GUI=xxe-gui:applet/Editor1.xxe_gui ./xxe &

Prev |  | Next
XMLmind XML Editor - Customizing the User Interface | Home | Chapter 2. Tutorial