Luxor Network: Luxor - Luxilla - Petra - Installer DeLux - Luxor Contrib - Luxor Forum - The Memphis Sun
Luxor XUL Logo
Making Building Classic Desktop-Style UIs As Easy As Building Web Pages
Overview . Tag Reference . Cheat Sheet . CSS Reference . API Reference . FAQ . History . Upcoming . Gallery . Notes . Powered By Luxor . Contribute . Mailing Lists & Forums . Premium Support . Credits . Glossary . Site Search . The Memphis Sun . Download . Download Luxilla . Download Plugins . Download Contrib . Source . Javadoc . Team . Who's Who . Donate . Luxor @ Sourceforge

Luxor - XML UI Language (XUL) Toolkit

What's New?

What is Luxor? What is XUL?

Luxor is a free, open-source XML UI Language (XUL) toolkit in released under the GNU General Public License (GPL) that lets you build UIs using XML and includes an ultra-light weight, multi-threaded web server, a portal engine, a template engine (Velocity), a scripting interpreter (Python) and more.

XUL stands for XML UI Language and was pioneered by Mozilla. XUL is superior to API-based UI toolkits such as Swing or WinForms because it clearly separates the user interface into four parts:

  • content (structure and description of UI elements),
  • appearance (look & feel, skin, themes),
  • behavior (scripting) and
  • locale (localization information for internationalization)

Content is best described in XUL as the following short example illustrates.

XUL version:

<menuitem action="newApplication" label="New Application..."
   mnemonic="A" accel="control A" icon="newApplication" />

Java version:

JMenuItem mi = new JMenuItem( "New Application..." );
mi.addActionListener( cmdNewApplication );
mi.setMnemonic( 'A' );
mi.setAccelearator( KeyStroke.getKeystroke( "control A" ) );
mi.setIcon( new ImageIcon( "images/newApplication.gif" ) );

XUL makes UI building easier because it is far simpler than hard-wiring it in Java. XUL also frees you from the Swing toolkit lock-in because you can create a new rendering engine using a different UI toolkit such as KDE, Gnome, or WinForms.

To find out more about Luxor check out the talk slides:

To see how all the pieces fit together and why they exist and how you can benefit, check out the Luxor Tech Talk, December 2001, where Gerald Bauer (Luxor Project Leader) answers Jeff Duska (President of the Upstate New York Java Users Group)'s questions about Luxor.

To find out more about XUL here are some links to get started:

Contributor Hall of Fame

Denis Cardon

Denis launched the Luxor Contrib Website sporting tutorials, tag plug-in examples and more.

Richard Steffen

Richard wrote a step-by-step Luxor tutorial in German. For offline reading get the tutorial-deutsch download package including all sources.

Denis Cardon

Denis wrote a getting started guide using the calculator example. Grab a copy of the calc-tutorial package including all sources.

Bertshi Thierry

Bertshi donated the source code for bringing the calculator example to life.

Martin Weindel

Martin hacked together an Eclipse SWT ("Standard" Widget Toolkit) Luxor prototype proving that XUL works with any GUI toolkit not just Swing. Get your two-meg Luxor SWT seeing-is-believing package today.

Bernhard Bablok

Bernhard wrote a two-page Luxor tutorial for the German Linux Magazin published in the June 2002 issue and graciously donated the example code, now included in the Ramses example suite.

Bernhard works for AGIS mbH (Allianz Gesellschaft für Informatik Service mbH) and writes the monthly Linux Magazin "Java Coffee-Shop" column. Bernhard also maintains a stable of his own open-source projects including a CD-bootable Linux distro.

Get Involved. Join a winning team; see How To Help Out And Contribute for getting started today.

How does Luxor XUL differ from Mozilla XUL?

Luxor XUL != Mozilla XUL. Luxor XUL doesn't strive to be a 100 % Mozilla XUL clone. Instead Luxor XUL tries to add more value to XUL through a built-in web server, portal engine or template engine, for example.

Table: Luxor XUL/Mozilla XUL differences (Note, this is no criticism of Mozilla XUL. Mozilla is a phantastic piece of software. Luxor XUL and Mozilla XUL just follow different goals that lead to different designs. Put simply Luxor tries to reuse some hand-picked Mozilla XUL goodies.)

Category Luxor Mozilla
Preferred Language for Behavior Java for hard-core programming and Python for scripting; JavaScript is currently not supported; however, JavaScript support can be added using Netscape's 100 % Java Rhino JavaScript engine JavaScript; other languages such as Java or Python are supported through XPCOM
Templates Luxor doesn't support Mozilla's XUL specific template syntax using <template> tags; instead Luxor uses Apache Velocity plus XSL/T Mozilla XUL specific template syntax using <template>
Web Server Built-In; lets you serve up XUL documents, HTML pages, icons and more from your app's own jars n/a
Portal Engine Built-In; lets you build web pages (aka portals) mixing static XHTML content with dynamic HTML content from portlets that differs from request to request (portlets are also known as HTML controls or HTML pagelets and are basically like servlets, but return HTML snippets instead of complete HTML pages) n/a
Zero Admin (Web Start Single Click Install/Upgrade) Yes; everything can be packed up in jars and delivered to your users desktop using Web Start; no loose files required n/a
Links/Other Projects Using XML For Building UIs

In the near future it will be possible to create your UIs using third-party UI designers and then transform their XML UI language flavor into Luxor XUL using XSL/T. This will open up new choices for UI designers such as Visual Studio, Qt Designer or Glade, for example.

Alternative XML UI Language Formats And Projects

The Open XUL Alliance site lists more than a dozen alternative XML UI language formats and projects such as Thinlet, Vexi, Ibex, SwiXml, Beryl, Xoetrope, Jazilla and many more. For a quick overview browse the XUL Challenge 2004 Counter Sample Showcase.

More Quick Links: Batik SVG · Velocity · Python · Jython · Groovy · JDOM · dom4j · Jaxen · XDoclet · Eclipse SWT · wx4j · Java Gnome · KDE/Qt Java · Kaffe · gcj · SableVM · IKVM · Mono · DotGNU · Gtk# · Qt# · Parrot · Mozilla · Relax NG
Hosted by SourceForge SourceForge Logo For questions related to the use of Luxor, please consult our web pages. If that fails, the luxor-xul-user mailinglist might help.
Please send comments on our web pages and the development of Luxor to our public luxor-xul-develop mailinglist.
Maintained by Luxor Team
Copyright © 2001, 2002, 2003, 2004, 2005 Luxor Foundation