Copyright © 2011, Zeleos Project Team
Here are some of the major noteworthy things available in release V0.2 (2010-03-01) which is now available for download.
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.
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.
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.
In order to differentiate between standard Events (ControllerEvent or ModelEvent) and UI specific Events, the new zwt.event.UIEvent
has been created.
You can know switch to another theme through the Window API using setTheme()
method.
All the API has been completely reviewed and the overall coherence of the API has been improved.
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.
The Button Widget layout has been improved to enable complex customization. It is now possible to define complex borders and backgrounds.
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.
The Tab bar has been improved to provide better customization (like the Button Widget).
You can now easily define icons for Menu items and the Menu item layout has also been improved for better customization.
Stack item selection is now animated using the Animation API.
Mouse wheel events are now supported on the Window.
ZWT Tools now provides a "strict" ECMA262 Compiler. It follows the ECMA262 grammar but doesn't support automatic semicolon insertion and RegExp literals.
The ZECMA262 compiler enforces the use of the ZWT coding convention. The compiler can also optimize the code.
The ZWT merger is now relying on the ECMA262 compiler to merge ZWT JavaScript files.
The ZWT packager is also relying on the ECMA262 compiler and can now package and optimize any ZWT class.
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.
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.