Bob has posted 7 posts at DZone. You can read more from them at their website. View Full User Profile

Click Web Framework 1.5: Container, ActionListener, Two Phase Event Dispatch and More

11.05.2008
| 4748 views |
  • submit to reddit

Click 1.5 is a major release with numerous new features, documentation and examples.

Click is a modern page and component oriented Java web framework providing a natural rich client style programming model. Please see this introductory article for a quick overview.

We would like to thank everyone for their contributions to this release.

Important links:
Highlights include:
  • Container - new interface for building arbitrary complex, hierarchical Controls.
  • ActionListener - new interface provides compile time safety and support for code refactoring tools.
  • Performance have been enhanced by rendering markup from a single buffer. In previous releases each Control managed its own internal String buffer. Our tests indicate performance gains of up to 40%.
  • Services - Click core has been refactored into pluggable services.
  • Added Freemarker support as an alternative templating engine to Velocity. See FreemarkerTemplateService for configuration details.
  • Provide three logging service implementations: ConsoleLogService, JdkLogService and Log4JLogService
  • Mock Test Support - introduces an easy to use package to write Unit and Functional Tests.
  • ControlRegistry - enables two phase listener dispatch, which allows Controls to bind request parameters before listeners are fired.
  • A new deployment strategy allows deployment of resources directly from jars.
  • New Renderable interface allows alternative paginator implementations for Table. Two implementations are available with Click 1.5: TablePaginator and TableInlinePaginator.
  • A new Powered by Click section was added. If you would like to add your own site to this list, please drop us a mail at one of our Mailing Lists.

New documentation:

New examples:
  • Wizard demo shows how to leverage a stateful page and Panels to create a process flow. Each Step in the process is represented by a Panel which is managed by the stateful Page.
  • Populate on select shows how items in one combo box is populated based on the selected item in another using JavaScript.
  • FormTable demo shows how a FormTable can be used together with an existing Form.
  • Page link tree provides a demonstration of using the Tree component to link to different pages.
  • Table paginators shows the different paginators available
  • New fields Country Select and Virtual Keyboard
  • Custom Form Layout using Containers shows how to use a Container for laying out forms

Issues resolved since RC3:
  • Added Dutch language support, contributed by Christopher Highway.
  • Improved Form to process controls even if their names is not defined. [463].
  • Fixed ContainerUtils.copyTo where the wrong getter method could be used when a domain object contains multiple overloaded getter methods. This issue was raised by Alvin Townsend [461].
  • Fixed Column internal Comparator which does not take sort order into consideration for non Comparable instances [462].
  • Fixed Panel.getId() to return null if name is not defined [464].
  • Fixed VelocityTemplateService to cater for custom defined Velocity loggers. This issue was raised by Vikram Natarajan [465].

Enjoy.

The Click team.

0
Published at DZone with permission of its author, Bob Schellink.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)