Clone wiki

Shandor-Xul / Home

Shandor XUL

Shandor is a User Interface framework built around the XUL document specification that allows programs to run in Swing, SWT or GWT. The abstracted UI interface objects and powerful binding system not only help the portability of Shandor applications, but provide for a naturally separated architecture that lacks much of the boiler-plate code that hinders application development over time. News

2009-06-21 - Added generic access to message bundles via document.getMessage("key"), works fat/thin.

2009-05-24 - Taking a little break. I am investigating using some GWT Mosaic classes for the GWT implementation.

2009-05-13 - Bug fixing mostly. Hoping to get Continuous Integration Builds online this week.

2009-05-13 - Many good fixes have gone in this week. Sample app is now in the source. Build files have been cleaned up.

2009-04-30 - Wraping up testing of Shandor conversion from Pentaho Xul. Hope to commit this weekend.

2009-04-19 - Demo'ed Shandor at BarCampOrlando.

2009-04-12 - Swing and SWT converted over. Continuing to work on GWT refactor

What can Shandor do for you exactly?

  • Generate Java applications with SWT, Swing or GWT from XUL documents with absolutely zero source changes
  • Support for the XUL Flex layout system.
  • Agnostic event handler system. Support for Java and Groovy handlers
  • Property bindings between Models, Controllers and Widgets with collection to widget binding supported (tables, lists)
  • Interfaces for all UI components that adhere to the XUL spec.
  • A generic DOM representing your application's UI components with XPath support
  • Full overlays support with the ability to add/remove overlays at runtime.


That's all well and good, but what exactly does this mean?

Check out the Screenies!

Grabbing the Source

Shandor is still in migration from Pentaho XUL.

All three flavors are working resonably well. Please let me know if you encounter any issues. If you have problem that can't be worked around you may want to try the latest from the Pentaho SVN Repository:

Where's the Doc?

I'm the the process of transitioning existing documentation from Pentaho's Wiki here. In the meantime please visit the documentation there:

Pentaho Xul Developer's Guide

Getting Started
Event Handlers (controllers)
Using the Document


We need your help! I'll start adding enhancement issues as I think of them.
Open Enhancements


Shandor Xul spawned from the Pentaho BI Suite ( early in 2008. Pentaho, being an open source company, has struggled to integrate Java applications acquired from various communities. Not only can they be written in with different Java UI toolkits, but with different application framework approaches as well.

Pentaho also has the additional requirement of providing a suite that can be easily customized or branded by partners and customers. A document-based interface definition, sometimes referred to as declarative mark-up, is the natural approach.

The decision to use XUL as that mark-up syntax was driven partly from an admiration for the Mozilla community but also because its a well defined open standard with good industry exposure. Besides, does the world need another way to declare a button?

While Shandor is under development at Pentaho, we're actively seeking community contributions. So please pick up the source and drop in some code.


Feel free to drop me a line anytime. I'm open for any suggestions, feature requests or if you just want to chat Xul. YIM: kodeoncoffee