The week in qooxdoo (2009-01-30)
Filed under: Activity Reports
By Thomas Herchenröder @ January 30, 2009 16:56
Here's another round of news from last week's project work.
Framework
Virtual Widgets
Last Friday we finished the first implementation of a prefetching feature for the virtual pane. Prefetching is a technique to improve the scroll performance of virtual widgets. Usually only the visible part of a virtual pane is rendered. This is how the current Table is implemented and it is the default for the new virtual pane. However, now it is also possible to precompute parts of the pane, which are just below or above the visible viewport. If the user scrolls the pane and the new visible area of the pane is covered by the precomputed area, no new content has to be generated. In these cases scrolling is as smooth as in non virtual widgets.
This can can be observed in the messenger demo. This demo has been extended and improved. Thanks to data binding (see further) it is now possible to add and remove contacts. Each list entry inside the messenger pane is represented by a Buddy Model which is held in an qx.data.Array. A controller class invokes an update of the GUI whenever a property of a Buddy is changed or the Array itself is modified.
Further we have added a Gallery example, which demonstrates another use case for virtual rendering. The demo shows two versions of the gallery widget. The first uses standard qooxdoo Atoms to render the cells and the second uses HTML based cell rendering.
Data Binding
During the whole week, documentation was a big topic for the data binding components. API-Documentation has been added to all three controller already introduced in the data binding blog post.
As new features for the controllers, filtering and sorting are in planning they will be added hopefully during the next week.
Bugfixes
A very annoying bug in IE concerning inline applications was just fixed today. Basically you have two ways to set up your inline application (in both scenarios you have to provide an element which is used as root):
- The application decides how much space it needs and renders itself respectively
- The application uses the size of the given root element
The latter case led IE to run into an infinite loop. This issue was reported under #1878.
Generator
Generator's main dispatch method has been revamped, so that jobs are run with more optimal tool chain setup (e.g. scanning libs, etc.), using trigger categories of increasing demand (some background can be found in this bug). There is a new (draft) page on default generator jobs which are automatically available if you are working with a skeleton-based application. Among others a bug has been fixed that messed with capitalization in file names on Windows platforms.
Applications
Testrunner
To make it easier to switch between a source and a build version of your unit tests, running "generate.py test-source" will provide you with an additional test/index-source.html file that loads the source version by default. This makes it also easier to stay with the source AUT across reloads of the whole app.
Contrib
Simulator
The Simulator contribution is currently being updated to work with qooxdoo 0.8 applications, and the project's SVN home will be re-organized accordingly. Only a few tweaks were necessary to make the custom qxh locators work, but due to safety features introduced in Firefox 3 they will break in Selenium IDE. Hopefully the Selenium IDE devs will find a solution for this soon. Until then, stick with Firefox 2 when testing qooxdoo applications in Selenium IDE. All test runs fine in Selenium RC.
Community
Atamert Ölçgen has written the first part of a nice tutorial on qooxdoo layouts. Way to go, Atamert!
That's it for now - take care 'till next week.


