QxTransformer is a toolkit for rapid application development with the qooxdoo framework.
It takes care of the most tedious parts of writing applications with
qooxdoo - GUI
building can be done almost entirely without javascript, which is only
needed for event handling and business logic.
qooxdoo is a powerful and flexible framework, which lets you build fancy and interactive web-based GUIs. Compared to traditional HTML
interfaces, qooxdoo provides not only a much better look and provides
widgets known from desktop operating system, but also frees you from
the traditional and cumbersome “input, submit & page refresh”
model.
However, coding a GUI entirely in javascript has a number of disadvantages compared to the traditional HTML way:
Bulding a sophisticated GUI
with javascript is error-prone. Even though javascript syntax check and
code completion exist in every good editor, it is very easy to make
mistakes that will only be spotted when the application is run,
resulting in longer code & debug cycles.
It creates code that doesn’t read very well. Whereas a HTML
page displays a clear structure and element hierarchy, qooxdoo
javascript needs countless helper variables with no other use than to
nest widgets ( tb1 = new qx....; tb2 = new qx...; mb4.add(tb1,tb2);).
These variables also make it difficult to reuse code because of
potential name conflicts.
There is no equivalent for the HTML
<form> element and mechanism. Many developers miss a simple way
to submit data to a server that doesn’t involve the manual collection
of the values of various input widgets. [This info refers to version 0.3; databinding has not been re-implemtented for v0.4]
QxTransformer has been written to solve these problems. It reintroduces a number of advantages of the XHTML model while at the same time keeping all the goodies provided by qooxdoo.
Clarity of Code: The QxTransformer XML
syntax has been carefully crafted so that QxTransformer xml source code
models the widget hierarchy in a way that is logical and easy to
remember. The source code can be modularized through includes and
extended through macros [coming soon in version 0.4], which help to avoid repetitive code.
Self-Validation: XML
is self-validating and keeps you from making typos that easily occur in
javascript code. We plan on providing a XTD validation sheet so that
one can immediately see whether certain attributes and child elements
are legal or not.
Databinding: QxTransfomer comes
with a few classes and code templates that free you from writing your
transport code yourself. Databinding of form elements (and virtually of
any widget) is achieved through a few xml attributes and works with any
backend supported by the qooxdoo json-rpc feature. There is also a
simple form submission feature which supports your plain old PHP or CGI script the same way your HTML page did. [This info refers to v0.3, has not yet been reimplemented for v0.4. qooxdoo version 0.8.1 brings new databinding concept, QxTransformer will use it in future.]
Template constructs: QxTransformer
allows to implement often-used behaviour which requires verbose
javascript through simple xml attributes, such as Drag & Drop
support, broadcasters and observers (known from XUL), translation, etc. [coming soon in version 0.4]
Portability: XML
code can also be more easily re-used because you don’t have to worry
about all those useless variable names that you need in javascript to
instantiate the widgets. In fact, whole snippets of XML
code can be copy & pasted from one application to the other without
any adaption and thus encourages code exchange among developers. Also QxTransformer supports macros and includes. [macros and includes are planned in version 0.4]
There are many other advantages, but I think you got the point why
we are so excited about the possibilities of QxTransformer. QxTransformer dramatically increases the speed of
qooxdoo application development. With it, we have been able to create
whole applications in a few hours.
|
|