The week in qooxdoo (2011-03-11)

Welcome to another weekly status update.

Table Styling

Ever wondered how to style the table widget and what theming capabilities this widget has? If so then grab yourself a coffee and read the brand-new documentation about this topic in the manual.

Feature Detection

We are currently working on qooxdoo’s detection system. We already moved some of the old detections into our new system and added deprecation warnings for the old stuff. As soon as we have finalized it, we’ll let you know about the new features and how to benefit from them.

Support for data: URLs

As already introduced last week, we’re adding support for data: URLs to qooxdoo. Last week’s post was concerned with the creation of base64-based combined images. What has changed since then is that we tweaked the convention for the output file name ending to .b64.json. This way it is tagged as a regular JSON file (which is what it is), but has still a file extension that signifies base64-encoded combined images to the generator. We also removed the config key combine-images/images/../type as this information is fully covered by the naming convention. The section today is concerned with the integration of base64 combined images in a normal qooxdoo application.

When creating combined images for your application, you have to decide whether you want a particular image as part of a combined image, and if yes, in which kind of combined image. You have to make up your mind, as you cannot have an individual image in more than one combined image (This would defeat the automatic scanning and registering of embedded images within combined ones during generation).

Now if you have a couple of images put together in a combined image, this combined image will be scanned during generation (e.g. source or build) like any other image. If a contained image is used by the application the combined image is registered with the application, and the required image is marked as being contained in that combined image. During run time of the application, once the contained image is requested the combined image data will be used. That is, if the current browser supports the use of combined images. If not, the individual image will be used instead.

This all holds true for base64 combined images as well (not withstanding potential future adjustments to the detection of support for data: URLs in the current browser). E.g. a decorator using a specific image for decoration can use the base-64 representation of the image in place of the binary representation (like PNG). The main difference to binary combined images is the fact that for binary images the qooxdoo run time could rely on the browser to fetch the image file if it was used for the first time.

Base64 combined images on the other hand are textual files, the URLs of which cannot just be sensibly set as src or background-image attributes of a DOM element. Rather, the combined image has to be in place so that the base64 representation of an embedded image is accessible as soon as it is required by the application. Therefore, the base64 combined images are included with the resource information that is part of the loader and/or the packages of the application, and are loaded directly with those .js files.

So, for you as an application developer all you have to do to make use of this feature is to create base64 combined images in the source/resource/<namespace> path of your application (Have a look at the Feedreader source tree for an example which uses base64 combined images.). The generator and qooxdoo’s run time will take care of the rest.

Data binding & virtual list & tri-state checkboxes

This week we added another demo that showcases a couple of new features found in qooxdoo 1.3. Check it out to see the new virtual list as well as tri-state checkboxes in action. Be sure to take a look at the code and discover some data binding goodness.

New Feature: Filter for TreeVirtual Widget

We have added a new filter feature to the TreeVirtual widget in the qooxdoo trunk. By defining a filter method and setting it to the filter property of the SimpleTreeDataModel instance you can easily filter the data of the tree. You can find a demo for this feature in the devel demo browser.

Bugfixes

For a complete list of tasks accomplished during the last working week, use this bugzilla query.

Have a nice weekend, everyone!

3 thoughts on “The week in qooxdoo (2011-03-11)

  1. The usage of data:urls will be a great enhancement, but how will you handle browsers that don’t support it? Have you thought about using MHTML for IE?

  2. @Marco No, as with other combined images, the fall-back is just the plain image, not a separate implementation. If you have a good alternative proposal, consider putting it in an enhancement bug.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>