Click Web Framework 1.5: Container, ActionListener, Two Phase Event Dispatch and More
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:
- Click Home
- Roadmap and Changes
- Upgrade Path - please see the upgrade path when upgrading from a previous release.
- Download Click 1.5
- Maven bundles
- Live examples
- 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.
- Container explains the new Container concept
- Template vs Programmatic layout explains different layout strategies
- Mock Test Support provides overview of the new testing support in 1.5
- Multiple pages packages allows you to host or integrate pages from separate packages
- 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.
- 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. .
- 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 .
- Fixed Column internal Comparator which does not take sort order into consideration for non Comparable instances .
- Fixed Panel.getId() to return null if name is not defined .
- Fixed VelocityTemplateService to cater for custom defined Velocity loggers. This issue was raised by Vikram Natarajan .
The Click team.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)