ZWT V0.2.1 JavaScript framework for Rich Internet Applications

Zeleos Web Toolkit V0.2 - New and Noteworthy

Here are some of the major noteworthy things available in release V0.2 (2010-03-01) which is now available for download.

Core API
Focus and Keyboard Navigation

ZWT now support full keyboard navigation and focus over Widgets. New methods focus(), blur() and hasfocus() has been defined on the Widget class to managed the focus on a specific widget.

Use Tab or Shift+Tab to navigate among the Widgets in a Part.

Keyboard Navigation.
Figure 1 : Keyboard Navigation.
MVC Pattern

MVC pattern has been introduced with zwt.control.* and zwt.model.*.

ZUIDL Compiler now generates a Controller and a model for a Part. The Controller defines all the actions linked to the Part Components.

It is possible to add Listeners to the Model to monitor model changed notifications.

MVC Class diagram.
Figure 2 : MVC Class diagram.
New Animation API

A new Animation API has been integrated to ZWT. The Animation's steps values are generated by a zwt.animation.Engine and used in a zwt.animation.Animation to modify the properties of an HTML element.

The API provides Size, Position and Alpha animations that can be combined in the zwt.animation.AnimationProcessor which actually runs the animations.

New UIEvent class

In order to differentiate between standard Events (ControllerEvent or ModelEvent) and UI specific Events, the new zwt.event.UIEvent has been created.

Themes switching

You can know switch to another theme through the Window API using setTheme() method.

API coherence

All the API has been completely reviewed and the overall coherence of the API has been improved.

UI Components
New Table Widget

The new Table Widget is used to display two-dimensional tables of cells. Apart from all the standard features (cell, row or column selection, single or multiple selection, column sorting...) all serious Table must provide, this implementation is very flexible.

The Table relies on different model for selection and column sorting. Basically, the zwt.ui.table.Table is just the two dimensional view that displays the data from the zwt.ui.table.TableModel on the page. The order of the rows is given by the zwt.ui.table.TableRowSorter and the row, column or cell selection state is kept in a zwt.ui.table.TableSelectionModel. A zwt.ui.table.TableSelector is the link between the Table and the Selection model.

Table Widget.
Figure 3 : Table Widget.
Improved Button

The Button Widget layout has been improved to enable complex customization. It is now possible to define complex borders and backgrounds.

New Button Widget layout.
Figure 4 : New Button Widget layout.
Improved Toolbar

The Toolbar Widget behaves now more like a container and lets you add any kind of Widgets in a flow fashion. ToolbarItem has been removed.

It is also possible to create vertical Toolbar.

New Toolbar.
Figure 5 : New Toolbar.
Improved Tab bar

The Tab bar has been improved to provide better customization (like the Button Widget).

New Tab bar.
Figure 6 : New Tab bar.
Improved Menu

You can now easily define icons for Menu items and the Menu item layout has also been improved for better customization.

New Menu.
Figure 7 : New Menu.
Animated StackPanel

Stack item selection is now animated using the Animation API.

Animated StackItem movement.
Figure 8 : Animated StackItem movement.
New WheelEvent

Mouse wheel events are now supported on the Window.

Tools
Strict ECMA262 Compiler

ZWT Tools now provides a "strict" ECMA262 Compiler. It follows the ECMA262 grammar but doesn't support automatic semicolon insertion and RegExp literals.

New ZECMA262 Compiler

The ZECMA262 compiler enforces the use of the ZWT coding convention. The compiler can also optimize the code.

New ZWT Merger

The ZWT merger is now relying on the ECMA262 compiler to merge ZWT JavaScript files.

New ZWT Packager

The ZWT packager is also relying on the ECMA262 compiler and can now package and optimize any ZWT class.

New ZUIDL Compiler

The new ZUIDL compiler can now completely generates the JavaScript, CSS and HTML files based on ZUIDL files. It heavily relies on the ECMA262 compiler and merger to generate and optimize the output files.

What's next

A huge effort has been made in this V0.2 release to improve the overall stability, customization capabilities and the coherence of the API making application development with ZWT very intuitive and powerful.

In future releases we'll need to focus on the performances which can be improved.

New components like a calendar should also be added to the list of available Widgets.

The Animation API can also be improved with the support of animation plans.

The drag and drop support should also be included in the API.