Building rich user interfaces with XML
Its becoming increasingly common to learn from web technologies and apply them to older computing problems we faced before. For example SOAP and XML-RPC is changing the way we implement distributed systems instead of distributed object technologies like CORBA, DCOM and EJB.
The area of rich user interfaces (fat clients) is also benefiting from lessons we've learnt building web based user interfaces. There's a bunch of markup languages for creating rich client interfaces using XML markup. Here's a rundown...
XForms certainly deserves a mention. It focusses mostly on forms and so doesn't really offer any richier widgets that basic HTML forms, its more of an improved XML-ercized way of doing forms. So it uses XML for the data and XPath to bind the form instance data to the controls. It also supplies a form event model. Certainly worth tracking though, especially if it ever offers richer controls like trees or tables.
JellySwing is part of a larger Jelly framework for creating executable XML using Java. That is plugging together a Velocity-like expression language with custom XML tag languages, allowing new declarative and procedural XML languages to be created easily.
So JellySwing alllows XML markup to be used to define Swing user interfaces, directly binding the Swing controls with your user interface models etc.
thinlets provide a simple XML markup for developing rich Java applets and applications. Its a small, compact download though not open source and no source code is distributed.
This is another markup thats quite Swing specific, like JellySwing but is a small self contained markup a little like thinlets. I've gotta confess to not liking the upper case element and attribute names used in the samples but Ezequiel informs me that its case insensitive - so I'd use lowercase if I were you.
On the plus side you get full source code. Though unfortunately its GPL licenced. I only tend to deal with Apache style ASF or BSD style licenses (or MPL at a push) as they work nicely with commericial and open source development projects. GPL tends to scare me off.
koaLaGML is another XML markup, based on JSP and (unfortunately) scriplets for implementing forms on Swing. Apparently other widgets are planned for later on. The koaLaGML folks could benefit from taking a look at JSTL and the use of an expression language to remove the need for scriptlets. Or better still try using Jelly :-)