Wednesday, March 07, 2007

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.

4 comments:

Anonymous said...

Really good work ! I will start to test and implement it in my new RCP application. And try to contribute if i can.

Aleksey Aristov said...

Hi! I'm working on the similar thing as a part of RCML project (www.rcml.net). Data binding part is implemented and soon will go to production use. Maybe we can find some way to cooperate. Write me at aav [at] acm.org, if you are interested.

Ciro Cavani said...

Nice work! I will try use it on my RCP too!!

Are you planing something like JIRA or some bug and patch tracking?

Tom said...

Yes of course. http://phpot.bestsolution.at/mantis/login_page.php

I'm on the road to finish the implementation of XBL (XmlBindingLanguage) you'll get it when you make a checkout from svn. The current state of the project is that it's alpha software but I'm working on it when I have time.

But be aware that things can change at this stage of the project. Having more others contributing and bringing in code is more than welcome from my side.