Xul App Project Window. screen shot

From here you can create a new project and organize the files within a project. Right clicking on a particular file displays a context menu of available editors for that file type.

XUL Form Editing Windows. screen shot

Form editing is controlled from the Widget Editor which displays the widget hierarchy for the currently selected form design. New widgets may be dragged onto the Widget Editor from the Toolbox to add them to the design. Existing widgets may moved or copied using drag and drop. The currently selected widgets are outlined by a red border on the form design. The properties of particular widgets may be inspected and modified using the Property Inspector.

Javascript Editing Window. screen shot

Javascript code is stored in an XML format "XJS" in which code and documentation may be mixed. This structured editor is far from complete but will display a collapsible outline of the test.jsx file in which certain parts are editable. When finished the editor will transform its xjs file into a Javascript file and an associated documentation file.

Features (mostly planned):

  1. The source will be held in an xml format: xjs.
  2. The target language is Javascript 1.5, but the xjs will start to target Javascript 2.0 features.
  3. For now the xjs is transformed to Javascript 1.5 using xslt.
  4. A fixed template for each class "X" will contain modifiable sections for:
    • Documentation Containing arbitrary xhtml.
    • Static Contains code to be generated as properties of the function "X".
    • Instance Contains code to be generated as properties of the function "X.prototype".
    • ... new sections could be added for maintenance, license etc.
  5. Multiple classes may be stored in one xjs file along with global declarations and code.
  6. New constructs may be inserted using accelerator keys. e.g. "Alt I" to insert an if statement.
  7. Class sections and certain element are collapsible.
  8. Fold/unfold comment blocks.
  9. Fold/unfold single element (e.g. function parameters) to be single or multi-line.
  10. Drag drop editing.
  11. Validation. Code structure will automatically contain balanced brackets of all types. Other validation will be performed to check for reasonable format. It is not planned to perform a full syntax analysis at this stage.
  12. It may be possible to institute Javascript 2.0 typing. This opens the door to type checking and code prompting/completion. i.e. When you enter x.calculate the type of x will be known so the parameters to calculate can be displayed and checked. etc. etc.
  13. Only specific parts are editable: if condition, function name and parameters etc.
  14. It is possible to tab between the editable parts of the code.
  15. It will be possible follow links to other xjs code and use back/forward buttons to control the currently viewed document.
  16. It will be possible to declare use of Mozilla interfaces and have the method stubs and constants added to an interfaces section in the class. This will also generate QueryInterface code for the included interfaces.
  17. It will be possible to declare informal interfaces which are for use within a project and are not registered with Mozilla.
  18. At some point an interface project type should be possible to produce installable Mozilla interfaces which are implemented in Javascript. c.f. The Javascript implementation of nsIDictionary.
  19. It should be possible to indicate which methods are intended as event handlers.

Xml Editing Window. screen shot

Xml documents may be edited by this html based editor.


  1. Fold/unfold container elements.
  2. Fold/unfold comment blocks.
  3. Fold/unfold single element to show element+attributes as single or multi-line.
  4. Drag drop editing.
  5. Validation based on RelaxNG schemas.(error reporting was limited, unfortunately not currently working).
  6. Only specific parts are editable (element/attribute names, attribute values etc.)

The xulapp project can be contacted through the mailing list or the member list.
Copyright © 2000-2018. All rights reserved. Terms of Use & Privacy Policy.