XSWT, Databinding, … => DataForms

It’s sometime ago I started rewriting the current XSWT implementation from David Orme. Now I saw the Blog from Alex about Databinding and thought it’s time to let you all know that I’m working on a set of plugins which have the following focus:

  • Use XSWT (or any other Definition Language) to create the GUI
  • Dynamically link together Forms (Master/Detail, …) using Eclipse Extension Points
  • Provide an XML-Dialect to define the binding and data retrieval in XML

Although it’s still a long way to go and many many things are not as smooth as they could be but I finally have something to present using a small application.

Here’s a screenshot of the small application. Currently you can only add items to it but that’s working really fine.


The key point is how this all works technically and what should I say it simply works. There are still about 200 lines of code needed to make this work because the binding has to be done manually at the moment. Go and get the code from our companies SVN-Repository and give me feedback, I’ve added a projectSet.psf so you can easily check out all needed modules.

The next things I want to address are the following:

  • Databinding:
    • Adding missing features (Deletion, …)
    • XML-Language for Data-Retrieval and Binding (XBL)
    • Finishing Event System (= needed for scripting support)
    • Finalizing/Stabiallizing ExtensionPoints and API
    • Adding API for a highly Configurable Privileges System
    • Provide XDOM (= DOM you know from Browsers to easily script Dataforms)
  • EXSWT:
    • Transformation Chain (other highlevel dialects transformed to EXSWT which near to SWT/JFace)
    • Work on XSD-Schema and XML-Editor with Live-Preview
    • WYSIWYG-Editor

Did I spark your interest? Give me your comments, I know there are other projects around with a fairly similar focus but some of the features are unique to this idea I think but are essential for datacentric applications.

Oh in the end I have had written a design document which is not up-to-date but provide informations where I’m coming from and where I’m going to.