Re: XUL, SwiXML, & Thinlets

Wolf Paulus <[email protected]> Thu, 2 Dec 2004 21:17:59 -0800
Newsgroups gmane.comp.embedded.carlsbad-cubes
Message-ID <[email protected]>
Hi Owen,
Here is my take :

If I wanted to generalize, I'd say GUI generation can done by manually 
coding it, using a code generator (before compile-time), or 
de-serialize an object hierarchy, which was serialized at an earlier 
time.

The XUL approach fits somewhat in the later category. While the object 
hierarchy never really existed, an XML document, describing objects and 
their state (tags are matched with classes and attributes are matched 
with properties), is used to instantiate the GUI at runtime.

There are OS and even programming language independent solutions 
available, i.e.(http://www.mozilla.org/projects/xul/). However, this 
independence comes with a price tag attached. The required runtime 
modules are of noticeable size, which can be an issue if the solution 
needs to be deployed remotely. More importanly, widgets are often 
re-implemented on top of the native components, adding to a sometimes 
already slow native UI framework.

Thinlet (http://www.thinlet.com) and Swixml (http://www.swixml.org) 
purposely not implemented this way. Thinlet works with Java AWT where 
as SwixML works directly with Java Swing components. Both solution 
require only tiny runtime libraries (around 50 kilo bytes) and are 
specially build for remote clients, i.e. conveniently deployable 
through Java Web-start. And yes you are correct, thinlets.jar provide 
the engine for the Thinlets widgets and swixml.jar provide the engine 
for the swing widgets.

Unfortunately, the XUL descriptor are not interchangeable. Again, 
swixml for instance does not implement its own widgets but calls 
directly into Swing.
Thinlet widgets and Java-Swing components have different properties, 
which are reverenced differently in the XUL descriptor.

I have not tried to access thinlet generated widgets with Jython but 
you can access Swixml gen. widgets with Jython.

At this point, Theodore an only create XUL descriptors for Thinlet. 
However, an comparable designer application for Swixml is currently 
worked on.

To summarize, neither Thinlet nor Swixml tries to be everything to 
everybody (read render AWT, Swing, SWT on every OS and Platform). Both 
solutions are highly optimized solution for pure Java, thinlet for java 
1.1 - swixml for java 1.2 and greater. The performance is 100% 
equivalent to pure AWT or pure Swing - the size of the required runtime 
in marginal.

Wolf

--
Wolf Paulus
707.202.3937
[email protected]

C a r l s b a d  C u b e s
Dedicated to Excellence

CONFIDENTIALITY NOTICE:
This message is intended only for the use of the individual or entity 
to which it is addressed, and may contain information that is 
privileged, confidential and exempt from disclosure under applicable 
law. If you are not the intended recipient, please contact the sender 
by reply email and destroy all copies of the original message.
On Dec 2, 2004, at 8:25 PM, Owen Densmore wrote:

> Our research group (http://friam.org) is looking into better tools for 
> simulation work.  The UI in particular can be quite arduous.  The idea 
> of using XML to describe the UI sounds great!  Some questions:
>
> 1 - XUL: I'm a bit confused by the difference between building XUL for 
> Thinlets vs Spring.  Is it a goal that the XUL should be able to be 
> targeted to multiple widget sets (AWT, Thinlets, Swing, SWT) and 
> possibly even different languages (Java, Python, TclTK, ...) by 
> supplying the "engine" that translates from the XUL to the target 
> platform?
>
> 2 - Thinlets vs SwiXML: If the above is somewhat true, then the 
> thinlets.jar provide the engine for the Thinlets widgets, and SwiXML 
> provide a different engine for the swing widgets, right?
>
> 3 - Jython: Presumably one could access either the thinlets or swixml 
> engines from Jython.  Is this possible?  Any idea how?
>
> 4 - Theodore: Can Theodore produce XUL that could be used by both the 
> thinlets and swixml engines?
>
> Thanks!
>
> Owen    http://backspaces.net/
>
>
> _______________________________________________
> Forum mailing list
> [email protected]
> http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com

_______________________________________________
Forum mailing list
[email protected]
http://carlsbadcubes.com/mailman/listinfo/forum_carlsbadcubes.com