The week in qooxdoo (2008-08-08)
Filed under: Activity Reports
By Thomas Herchenröder @ August 8, 2008 7:26 pm
Today (08-08-08) could have been the perfect target date for qooxdoo 0.8, right?
Releases
While this wasn't intended, we are getting closer to 0.8 final nevertheless. Last week a first beta was made available, and work now concentrates on the next pre-release. As you might have seen in the road map, and given the progress and scope of the current code base, we plan to have a first release candidate available soon. qooxdoo 0.8 final is planned to ship this August.
Repository re-organization
As we have briefly reported a repository re-organization has taken place earlier this week. All that is left to say is that things look fairly smooth again. The trunk seems to be in good shape, and the former backend part has been successfully migrated to the qooxdoo-contrib repository (thanks to Fabian who did all the tedious SVN juggling). It now dwells there in the form of several independent "Rpc*" projects (see next section).
RPC Servers
qooxdoo offers an advanced RPC mechanism for direct calls to server-side methods. It allows you to write true client/server applications without having to worry about the communication details.
The qooxdoo RPC is based on JSON-RPC as the serialization and method call protocol. All parameters and return values are automatically converted between JavaScript and the server-side language. qooxdoo provides such optional server backends for Java, PHP, Perl (and Python currently hosted externally).
Those existing RPC servers have been relocated in accordance with the backend contributors. The are now available in qooxdoo-contrib. Not only did it allow for a more concise qooxdoo frontend file structure, but now also an independent development process and own release management (e.g. for hotfixes) is possible.
Your favorite language is missing? Feel free to write your own qooxdoo RPC server, it is fairly easy. If you follow the rules of the Server Writer Guide, you should end up with a conformant implementation.
Ravelled-out Tool Chain
We have a new script in the working called createProject which simplifies the creation of new qooxdoo applications. You just will have to provide a name and optionally the top level namespace and the script will create the qooxdoo application into a new directory. The application is already configured and ready to build and run.
The private optimizer has got a little bug fix to also compress/rename privates created through a simple assignment.
Ruminative Framework
Shadow
We have added generic support for shadows on top level widgets like windows, menus or tool tips. The shadows can be styled by any decorator. Shadows are now used in both the classic and the modern theme.
Table
After the port of the table we fixed many small issues and a bunch of long open bugs reported against the 0.7 table. We have even backported most of the fixes into the legacy_0_7_x branch.
Theming
- More work of polishing the Modern theme.
- Minor changes at the feed reader application. Mainly changed the appearance of the windows to better adapt the look of the Modern theme.
- Another improvement included icon themes. The current trunk contains a few more icons Tango and Oxygen have in common. Also some icon names were improved to make them more consistent.
- Work to improve the performance and structure of the decoration themes have been started this week. Currently the trunk still has some issues introduced with the new code. The situation will hopefully improve during the first days of this week.
- The ''Rounded'' border was removed for the moment. It is currently not recommended to use the VML/CSS3 based renderer because of a few display inconsistancies. There are good alternatives however like the ''Beveled'' or ''Grid'' decorator which are also used heavily by the ''Modern'' theme.
- Several bugfixes.
Miscellaneous
- Added support for context menus on widgets. These menus are automatically attached to the contextmenu event and are automatically placed to the mouse cursor.
- Added support for cancelling the native context menu. By default this is enabled when using qooxdoo in an application like environment through the usage of qx.ui.root.Application.
- Added ''getSortedSelection'' to all selection managers. This returns the selection sorted by the occourence in the list/tree instead of the sequence the items where sorted.
- Imporved drag&drop support, now with full API documentation. Added support for getting the related (current drag or drop widget, depending on the context) and original target (the widget which is hovered) during drag&drop events.
- The ''iconOpened'' property was removed from the Tree. It is now handled as in every other qooxdoo widget using a state together with the matching appearance theme.
- The Tree has got full sub control support which means that the icons, labels etc. are now easily accessible inside the appearance theme for improved customization options.
- Renamed alignment utility to PlaceUtil and methods from ''alignToXXX'' to ''placeToXXX'' after discussion with native speakers. Thank you for that type of feedback.
- Fixed SelectBox and ComboBox to behave correctly during hovering items. The selection was decoupled between the list and the text field to allow a quick selection during mouse over. Thanks to the community for the feedback to this issue. Sometimes it is easy to miss these details.
That's it for this week's round up. Take care!

Comment by Sebastian Werner
So, the demos are now online as well. I first thought that the trunk ist not stable enough, but most things seem to work ok for the moment. Have a look yourself at:
August 8, 2008 9:29 pm
Comment by Gaëtan de Menten
Here is today’s share of feedback:
- feedreader in English by default, would be nice
- general: the grey background color of “tab pages” in the demobrowser without any transition (line or whatever) to the lighter color of the “tab button” is ugly. You could either make ther make the “tab pages” background the same color as the active “tab button” color, or add a transition line, as there is in firefox.
- spinner mousewheel events are inverted
- demobrowser’s object summary is missing an icon §since it was switched to Modern theme).
- colorpopup demo: the “Open popup” button overlaps with the “Selected color” label.
- ColorSelector: the label reads “Aperçu (Nouveau/Ancien)” in French when it should be “Aperçu (Ancien/Nouveau)” (ie the new color is on the right). I haven’t looked at the code to see if it’s a problem only in the French translation or if the problem also exists in English.
- ComboBox: is there a way to open the list of options through the keyboard? Idem for datefields,
- DateChooser: bottom label overlaps with the calendar (already reported)
- GroupBox radiobuttons are not aligned anymore. Is it intended?
- unmaximize icon is missing in Modern theme
- resizer demo doesn’t work at all.
- SelectBox list of option can be opened with the “Enter” key. It would be nice if “space” worked also. This is at least the case for GTK and QT. Also, when pressing Escape, the SelectBox should revert to the value it had before opening it. Or, even better (IMO), the value of the field itself shouldn’t change live, but rather only on Enter.
That’s it for today,
Gaëtan.
August 8, 2008 11:11 pm
Comment by Sebastian Werner
Gaetan, thank you for your feedback. Highly appreciated.
The default locale of qooxdoo applications is in the moment auto-detected. I think this is this way since introducing internationalization features in qooxdoo.
Tbe appearance of the TabViews is not yet final. We have to wait for the improved decorators to finish them.
The spinner issue was added as a bug.
I will continue with the rest on Monday.
August 9, 2008 3:56 pm
Comment by Gaëtan de Menten
> The default locale of qooxdoo applications is in the moment auto-detected. I
> think this is this way since introducing internationalization features in qooxdoo.
This is obviously not the case for the feedreader, as I have nothing german in my computer/headers (see below).
By the way, I noticed a small oddity in that autodetection code (or is it intended?). It gives precedence to the language in the User-Agent header over the Accept-Language header. My browser sent the following headers for these tests:
User-Agent Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.8.1.16) Gecko/20080715 Ubuntu/7.10 (gutsy) Firefox/2.0.0.16
Accept-Language en-US,en;q=0.8,en-us;q=0.6,en;q=0.4,fr-be;q=0.2
And Qooxdoo detected that as French. IMO, the User-Agent language should only be used as a last resort if the Accept-Language is not set or something like that. But I don’t know how cross-browser each of those are, so maybe the current behavior is the safest.
> The spinner issue was added as a bug.
Note that this was wrong at some point in 0.8 devel, then corrected, then reversed again. Someone in the team is probably considering the inverted behavior as normal.
August 11, 2008 10:04 am
Comment by Gaëtan de Menten
BTW, if you’d prefer such comments on the mailing list, just say so. I’m replying here just because it’s very slightly more convenient for me to do so.
August 11, 2008 10:05 am
Comment by Sebastian Werner
@Gaëtan, I personally would prefer the mailing list for such type of communication.
August 11, 2008 10:23 am
Comment by Sebastian Werner
Spinner was fixed. Missing icons in demobrowser were fixed as well.
Combobox do not interact with keyboard controls. This is the indented behavior for the moment. The SelectBox however do react on keyboard control like Enter.
What do you mean by the groupbox radiobuttons are not aligned anymore. In Modern they should be layouted above the border. The demo still needs some improvements. I put this on my list for today.
The missing restore icon in windows will be added by Alex.
I will improve the SelectBox. And the resizer demo is already on our list.
August 11, 2008 10:47 am
Comment by Gaëtan de Menten
For the record, follow-ups to my comments are on the lists.
August 11, 2008 11:58 am