Chronicle of the Xul Revolution
The upcoming Rich Client Conference (RichCon) 2005 bringing together the leaders in next generation browser offerings in Boston in spring 2005 to discuss the future of the web using markup, scripting and installation tracks now has its own website at richcon.com
You can now also access the XUL Alliance website using the xulalliance.org web address.
You can now access the XUL News Wire - the world's #1 XML UI Language (XUL) news source - using the xulnews.com web address.
The latest XUL News Wire headlines include:
Welcome back to episode two of the XUL Titan Interview with Dimitri Pissarenko of SwiXml Viewer fame.
Q: How did you get started on swixml-viewer?
Dimitri Pissarenko: Once I wrote a SwixML UI descriptor and wanted to know what it looks like without writing a Java program I started to search the Internet, but didn't find anything, and so I wrote a couple of lines of code.
I think that swixml-viewer is a real alternative to designing UIs on paper.
Q: Can you tell us what swixml-viewer can do today? What works and what needs to be done?
Dimitri Pissarenko: swixml-viewer can display SwixML and Thinlet UIs. There are some serious bugs with respect to Thinlet.
At the moment, swixml-viewer can't display menus.
Concerning the future, I have several ideas about swixml-viewer.
1) Learning and comparison tool
What you can't program, you haven't understood. I want to know how those many XML UI toolkits work in practice and what they can do for me. I think I can learn a lot about them by incorporating the support for them in swixml-viewer.
When someone else wants to know what XML UI toolkit to use, he/she can simply take swixml-viewer, look at the UI descriptor, look at the code, which renders it, and decide what XML UI toolkit he/she likes most.
If users of XML UI toolkits are able to see the differences in UI descriptors and the code clearly, they can make a better decision whether to use XML UI toolkit and if yes, which. This can promote the use of XML UI toolkits.
2) Aspect-oriented UI generator
This idea is much more uncertain. Most of us have certainly heard (or used) the Hibernate framework for persisting Java objects in relational databases. One of the features of Hibernate I like most is the fact that a Java class doesn't need to know that it can be persisted in a relational database. That is, any JavaBean can persisted and not a single line in its code is related to persistence. This is an excellent example of aspect-oriented programming.
Now, perhaps one can automate the creation of UIs for objects in a
As an example of how this might work, see example program
It is analogous to
Demo.java, except that now the
DemetrixPropertiesHolder is created from a plain old JavaBean.
Note that the bean needs not know that it can be displayed as
Q: Do you have a favorite scripting language for the Java runtime? Do you want to see scripting pushed more in SwiXml or do you want to keep the code Java only?
Dimitri Pissarenko: Sometimes I use BeanShell. However, in my opinion scripting should be used only to a limited extent due to testing problems (it is much easier to test Java code than a script).
In my programs, event handling is done in Java. The crucial point about event handling is testability. If it is possible to test event-handling code, I will consider using script-based event handling. At the moment, I use JUnit, JUnitX and Abbot to test my UI-related code. I am satisfied with this "triad".
Again, it depends on the environment. If some programming genius creates a way to use the same UI descriptor in a desktop Java app, on the web and, say, on PalmOS, I definitely will use it (even if testing is difficult).
Q: What's your take on adding CSS support to SwiXml for styling using rules?
Dimitri Pissarenko: In principle, this is a good idea. I think there are situations, in which such styling mechanism can be very elegant (for instance, rendering of UIs for people with special demands, like handicapped people).
Concerning my practical work, I don't think that this is a vital feature without which I can't survive.
Q: What do you think is still missing badly in SwiXml?
Dimitri Pissarenko: Well, nothing :)
I am interested in mechanism, using which one can write one UI and then use it in different environments. In particular, I want to discover how one can create PalmOS-versions of normal Java apps, including UI.
Another thing I am thinking about is using SwixML (or another XML UI framework) on the web. Many people (including me) don't like usual web interfaces.
Q: What's next for swixml-viewer? Any plans for adding alternative XML UI language formats in addition to SwiXml and Thinlet?
Dimitri Pissarenko: I plan to include support for all major XML UI frameworks. And, of course, to test and debug swixml-viewer.
Another thing is integration of swixml-viewer into important desktop environments (Windows Explorer and analogous file managers in KDE or Gnome). I want swixml-viewer to display the contents of an XML UI descriptor by a single click under both Windows and Linux.
Q: Do you have any future plans for SwiXml?
Dimitri Pissarenko: I want to try to use SwixML in web environments and on PalmOS. If current state of SwiXml does not permit it, I will consider extending it.
Thanks Dimitri Pissarenko.
Welcome back to the XUL Titan Interview series. Today let's welcome Dimitri Pissarenko of SwiXml Viewer fame.
Q: Can you tell us a little bit about yourself?
Dimitri Pissarenko: I'm a 23 year old Russian software engineer currently resident in Vienna, Austria. From 1996 to 2001 I was learning at the Higher Technical School for Electronic Data Processing in Vienna (the famous "Spengergasse"). In 2002 I got a BSc degree in Computer Science from the Austrian Partners of the University of Derby.
During my time at the higher technical school I started to work part-time for a company, which specialised in development of web-based applications in ASP and PHP. I worked for that company until the end of 2001. After finishing my BSc thesis in summer 2002, I started to work on a project, which aims at creation of a process modelling system, which will be used primarily for performing analyses of environmental friendliness of electric and electronic devices.
Q: How did you stumble onto SwiXml?
Dimitri Pissarenko: When developing web applications I often had to create forms in HTML. At some moment I thought that it would be nice to be able to create Java GUIs with the same effortlessness as HTML forms. Personally, I am more efficient in creating a GUI by writing a couple of lines than either by using a graphical editor (such as those found in Together ControlCenter or Visual Basic) or manually programming them.
First, I tried to use Luxor XUL. That attempt failed because I played with it too little before I got your suggestion to use SwixML.
After I looked at SwixML, I stopped to look for alternatives because it fully satisfied (and satisfies) my needs.
Q: Have you tried out any alternative XML UI toolkits for Java before settling on SwiXml?
Dimitri Pissarenko: As already said, I tried Luxor XUL. Recently, I've looked at XUI and Thinlet.
I like SwixML particularly because of the simplicity of its UI descriptors. Thinlet's UI descriptors seem to be as simple as those of SwixML. Luxor XUL was a bit too complicated for me and XUI's UI descriptors are too verbose.
I want to stress that I'm using SwixML only for rendering UIs, event handling is done in Java. In this setting, the UI generation framework has to be simple. All my normative statements about Luxor XUL, XUI, SwixML and Thinlet refer to this setting.
I'm sure there are other circumstances (e. g. when the UI generation mechanism should do more than only displaying the UIs), under which other XML UI toolkits may be more suitable than SwixML.
Q: How did you get started on Demetrix?
Dimitri Pissarenko: I wanted to write some program from scratch, in which I could incorporate some of my ideas I got while working on a commercial process modelling system.
Most important part of it is the automatic UI generation mechanism for JavaBeans and objects, whose interfaces conform to a certain standard.
Q: Can you tell us some challenges you faced while using SwiXml in Demetrix?
Dimitri Pissarenko: Well, the use of SwixML was the least problematic part in working on demetrix. Perhaps this was due to the fact, that SwixML is used in demetrix only for rendering the UI and I didn't use it in any sophisticated setting.
Q: Can you tell us how the automatic UI creation using SwiXml works in Demetrix?
Dimitri Pissarenko: I think that a piece of code tells more than thousand words, so I prepared a small example of how automatic UI creation works.
Full code is located in file
src/Demo.java in the
In order to build it, you need to enter
ant -f build-demo.xml.
In order to run the example, type
java -jar demo.jar.
Both these commands should be entered in the directory, where
is located. And you need Ant, of course.
In this example, a data object is created first. That object has several properties:
After all of these properties were added, we create a
which will be used for displaying the data object.
PropertiesPanel generates a
in which all properties of the data object are displayed. This
JPanel is shown
JDialog is there, you can view and enter values of the
properties. You can also create new properties. If a new property was created, the data object
is updated automatically.
A "unified property architecture" is advantageous for other domains
too, for instance, you one can write one
TableModel and use it to display
Another example is the export to Excel in demetrix (see files
Here I wrote classes for reading and writing collections of
to/from Excel, and these classes can be used for all
Thanks Dimitri Pissarenko. Check back next week for the second part of the SwiXml Titan interview with Dimitri discussing scripting choices for SwiXml, what's Dimitri's take on styling Swing UIs using CSS, what's next for SwiXml Viewer and much much more.
|Please send comments on our web pages to our public xul-talk mailinglist or to a member of our web team.||Copyright © 2003, 2004, 2005 Open XUL Alliance|