Here it is again the weekly status update, quite a bit this time, mostly addressing progress in qooxdoo 0.8 development:

  • generator2: We have introduced "Manifest" files into the configuration process. Manifest.js files have been around for a while in qooxdoo-contrib projects. They serve to provide meta information for the project in a structured way. We have now extended this initial Manifest file layout to include technical data that can be used automatically by the build process. You will find those new Manifest files increasingly in the trunk version of the standard qooxdoo applications, demobrowser and apiviewer taking the lead. config.json files can now incorporate "libraries" without (re-)specifying their internals like their encoding and paths to classes and resources. Consequently, the new "library" key only takes the path to the relevant Manifest.js file, and an URI prefix to the respective directory. You probably guessed what this is all supposed to end up with: skeleton-structured "libraries" can provide their features through a uniform Manifest file, be they a straight library like the qooxdoo framework, a tool add-in like the API viewer application, or a component contribution like the Inspector, for other projects to use. If you are working with the trunk version of the qooxdoo SVN repository, please update your config.json file accordingly because the old "library" entries will not work anymore. (Gee, we need to update the documentation ...).
  • This week we spent some time to hang out with the guys from Innoopract. They have started to play and work with the upcoming 0.8 version of qooxdoo more intensively. They have already provided a lot of valuable feedback and discussion about things like child widget handling and widget pooling. Their high-profile RAP project gives them a very sharp eye for the nuts and bolts of the next qooxdoo version. We also raised a glass of beer or two :)
  • Support for margins have been introduced at widget level. This means that margin is a property which every layout manager should respect. Earlier, the margin property was only implemented on box layouts, but it will soon be introduced into other layouts as well. Have a look at the box layouts as they are the first feature-complete layouts following all our latest API ideas.
  • An experimental layout property editor has been added to most of the layout demos. This editor can be used to inspect and change all layout relevant properties of a widget. A widget can be selected for editing by simply clicking on it
  • Layout Property Editor

  • Alignment support for widgets is now available on the LayoutItem. The newly introduced alignX and alignY properties should be respected by any layout manager and have a higher priority than other alignment values given directly to the layout manager. This feature is now fully supported by the improved box layouts as well. Other layout managers will follow.
  • Some layout algorithms were greatly improved. For example, the flex compution is much more efficient now. The box layouts also have got some tweaks to reduce re-parsing of complex values (e.g. percentage values).
  • The decorator implementation has been modified to allow more fine-grained update routines. For instance a decorator gets information about changes like size, background color or the overall style. This may result in faster updates when all decorators make use of this new data.
  • The generic renderLayout method in LayoutItem was greatly improved. The new version reduces updates to the DOM "backend" to a large extend by evaluating if modifications have any influence on certain aspects.
  • Many structural improvements to the LayoutItem / Widget combination where made. A lot of stuff has been split out and moved around to have the implementation in the responsible class. Compared to the previous implementation the Widget itself has a lot less knowledge about the general layouting interface.
  • New contributions appeared in qooxdoo-contrib: "FileSize" includes a filesize format class and corresponding cell renderer. FilesizeFormat enables the conversion of 500 to 500kb, 1500 to 15 KB, etc.  The Filesize cellrender enables data formatted as Filesize to be included in a table. Thanks to Mike Rea for this contribution! Haven't you got something you'd like to share with other qooxdoo users? Please check out the infrastructure of qooxdoo-contrib that makes it very easy to start, maintain and collaborate on additions to qooxdoo.