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!