I've been thinking a bit about XUL editing environments lately. There are two parts that would be useful, a GUI designer and a deployment tool. The former would be an application which would allow one to place UI elements on a window and adjust properties and hook up events and so forth. There are some attempts at this already (XULMaker for instance) but nothing yet at the point which is very easy to use and polished. I have some designs for how I would create such a application floating around in my head.

One of the things about Visual Basic is that it works with absolute coordinates. That means that elements can be placed exactly at the position and size the developer wants and can move them about without problem. XUL doesn't work this way. Instead elements are placed in boxes and are positioned according to their parent, children and siblings. Java works this way too. How do Java builders cope with this in a logical way?

The second part is the deployment tool. Essentially, the developer should be able to click a Build button and have the application packaged up, complete with all the various components needed. Optionally, one should be able to specify whether the application needs a Mozilla or GRE or something which could be packaged up with it. One would be able to check off what components to include, such as XSLT, database support, xmlextras, and so forth. Much of this part of the tool would be independant of the XUL designer. The deployment tool would be used, for example, to deploy Mozilla and applications, either standard or custom ones, on a group of machines.

There is quite a bit of interest by people wanting to build XUL applications, however, the roadblock often seems to be the lack of easy to use tools to make this convenient and possible.

I've been working on an unrelated project using the Mozilla editor code so I've become quite familiar with how the editor works. I wonder if Composer could become the basis for a XUL editor? Being able to visually create an application and then click Publish would be very nice indeed.

Sigh... I have at least 15 things I want to work on and only one brain.