The week in qooxdoo (2009-07-03)
Filed under: Activity Reports
By Andreas Ecker @ July 3, 2009 23:47
Here's another weekly report, which collects input from the various core developers (thanks, guys!) and tries to massage it into a (mostly) coherent and appealing blog post ...
Form API
We introduced a new property on some form widgets called placeholder. Perhaps you already know what to do with it? If, for example, a TextField is empty, the placeholder will be displayed in a light grey font to give hints on what to enter. Five widgets did get this placeholder feature:
- TextField
- PasswordField (well, it only displays dots anyway)
- TextArea
- ComboBox
- DateField
To see the placeholder feature in action, take a look at the form demo in the online demobrowser.
Another new feature in the input fields is the possibility to filter the input. The following code snippet shows how it could be used.
var textfield = new qx.ui.form.TextField(); textfield.setFilter(/[0-9]/);
This feature in the input fields allowed us to improve the spinner and the ColorSelector.
ComboBox
A ComboBox is like a TextField with a drop down of predefined values. A ComboBox is often used to improve usability. For instance, an app developer could add the least recently used (LRU) values to the drop down. This is quite convenient for the user when required to enter a value.
Of course, there are other use cases for the ComboBox. The main difference to the SelectBox is that the user can enter individual values or choose from the pre-defined ones. A question remains: should the ComboBox have a text value set initially?
This question can really only answer the app developer depending on his/her specific use case. At least the ComboBox shouldn't set any text value per default. But this was the behavior implemented so far, the ComboBox used the value of the first element of the drop down to initialize the text field. Also by looking at other toolkits and OS interfaces we decided to account for that common behavior: the ComboBox initializes with an empty value for the TextField (of course, if no value was set programmatically). That's the way it's implemented in the current SVN trunk. So you might consider adjusting your code when working with the trunk.
An XmlHttpRequest oddity
Two failing qx.io.remote unit tests exposed what looks like a bug in Safari 3 and Firefox 1.5: If a qooxdoo application has a qx.ui.embed.Iframe with another qooxdoo app running inside, some AJAX requests sent by the inner app using relative URI paths will lead to 404s: The XmlHttpRequest implementation in both browsers seems to treat URIs as if it was running in the topmost browser frame, so that, in a case like the qooxdoo Test Runner where the embedded application is located in a subdirectory of the outer application, that directory will be omitted from the GET requests sent to the server.
Granted, this use case is fairly specific and both browsers are obsolete, but we'd still like to hear from anyone out there who might have run into this issue before.
RPC Perl
Tobias Oetiker has put forth the first release 0.1 of the RpcPerl contribution, a server-side implementation of the qooxdoo RPC in Perl, making this the fourth contribution kit (i.e. archive) online at sourceforge.net. The new release is a brushed-up, but fully backwards compatible version of the so far unreleased software. Taking this opportunity, a new piece of documentation has been added that details the process of creating a SourceForge release from a contribution.
Online Demos
All demos at demo.qooxdoo.org are back to a standard-port, non-redirect implementation, so all issues with blocking firewalls and lost fragment identifiers should be gone
.
Bugfixes
For a complete list of bugs fixed during the last week, use this bugzilla query.
Community Award
As you should already know, qooxdoo has been chosen as a finalist in the annual SourceForge.net Community Choice Awards. It would really be great if you supported the project byvoting for qooxdoo in the category Best Visual Design. Thanks!
Have a nice weekend.

Comment by Sebastian Werner
The new placeholder feature is neat. Would prefer a darker grey though.
With filter available for text fields the next nice addon would be parsers. Like in DateJS is should be possible to be widely tolerant for formats and just accepting what the user write without forcing him/her to a specific format. This would mean to keep the user entered value, but to translate it to a internally exchanged value (maybe this could happen somewhere in the data binding).
July 4, 2009 02:06
Comment by Helder Magalhães
> [...] but we’d still like to hear from anyone out there who might have run into this issue before
I believe I did experience something similar (in IE6, if memory doesn’t fail). My guess is that there’s some issue in MSHTML regarding document “base” when using iframes: sometimes (this wasn’t deterministic), when setting (a child resource) to a relative URL, the parent URL was used instead…
Further testing is required in order to double-check if IE7 and IE8 are really free from this issue. By the way, I don’t remember any of this in Firefox 1.5.
> All demos at demo.qooxdoo.org are back to a standard-port [...]
Glad to hear.
July 6, 2009 21:05