Click Extras API

Click Extras provides a library of additional controls and components which are outside of the core Click framework.


Packages Provides the Cayenne data aware controls. Provides the extra controls. Provides GZIP compression Filter classes. Provides various graphical controls. Provides the Hibernate data aware controls. Provides customized Panel classes with their own Velocity templates. Provides security access control classes. Provides alternative Click runtime service classes. Provides Spring integration with the SpringClickServlet classes. Provides tree controls for hierarchical data.


Click Extras provides a library of additional controls and components which are outside of the core Click framework.

Click Extras are packaged as a separated JAR which you can deploy with your application. Extra packages include:


Click Extras provides a place for people to contribute their own code to the Click project and have it package with the standard distribution. Contributed code will be subject to review and may require modifications before it is included in the Click distribution.


One of the overriding design principles with Click is to keep it simple, this makes to code easier to understand and more reliable.

Another guiding principle is YAGNI (You Ain't Going to Need It), or don't build it until you really really need it. Click is trying to provide an 80/20 rule framework where 80% of peoples needs are meet by a framework which is only 20% in size.

When developing Click Extras contributions please follow these principles.


Components and controls should have minimal dependencies. This is to support easy deployment of the click-examples and keeps the click build process simple. See Extras Dependencies for details.

Please Note the Cayenne and Spring dependencies are only required if you use these particular features. For example if you are using Hibernate for your persistence framework, the CayenneForm control will not cause any issues as this class would never be loaded by your application.

Auto File Deployment

The Click framework uses the Velocity Tools WebappLoader for loading templates. This avoids issues associate with using the Velocity ClasspathResourceLoader and FileResourceLoader on JEE application servers.

To make preconfigured resources (templates, stylesheets, etc.) available to web applications Click automatically deploys configured classpath resources to the /click directory at startup (existing files will not be overwritten).

To enable your controls to deploy resources on startup either place the resources in the Click Extras JAR folder 'META-INF/web/' or use the Control onDeploy() method. Click extra controls which use the onDeploy method should be registered in Click Extras JAR extras-controls.xml file. See the section Deploying Custom Resources for more information on resource deployment.

Coding Style and Practices

Click follows the Sun conversions for Java code style. Other style convertions and practices include: