HandyTapestry 1.3 is released! Read more about new features

HandyTapestry

This plugin for IntelliJ Idea 6.0 helps to develop Tapestry web application faster and provides following features: Please see Installation instructions, Tapestry project structure and Plugin configuration notes before working with plugin. The plugin supports Tapestry 4.0

Code completions in the HTML template

The plugin adds helpful completions in the HTML template:

  1. jwcid attribute value (component type, component reference)
  2. component parameter names
  3. OGNL expressions
  4. listener name
  5. page attribute value
  6. asset
  7. message key
  8. key attribute value
  9. constant in OGNL
  10. component: expression
Most completions are available in the attribute values of the Tapestry component (tag with jwcid attribute). But the key attribute value completion is available for all tags, and the component parameters names completion is used to complete tag attribute names. Read more...

Navigations from HTML template to the Java code

Also the plugin adds navigations from HTML template to the Java code:

  1. jwcid attribute value (component type, component reference)
  2. OGNL expressions
  3. listener name
  4. page attribute value
  5. script attribute value
  6. asset
  7. message key
  8. key attribute value
  9. constant in OGNL
  10. component: expression
Most navigations are available in the attribute values of the Tapestry component (tag with jwcid attribute). But the key attribute value navigation is available for all tags. Read more...

Create Tapestry component dialog

To create a Tapestry component please do the actions below:
  1. Right click on folder or package in the project view and invoke context menu: Project view context menu
  2. Select the New / Create Tapestry component menu item.
  3. Enter a component name: Create tapestry component dialog

    The component name is Java identifier, or starts with letter, contains letters and digits. Therefore the name can't include slashes and dots.

    Component folder is optional. For example, if you entered UserTable name and didn't select component folder then your component resides in the component root and reference to the component is "UserTable". If the name is CreateAdmin and subfolder is admins then component is resides in the admins subfolder of the component root and the reference is "admins/CreateAdmin".

Delete component action

Right click on component class or template and choose "Delete component" action. Confirm deletion and the action deletes all component files: specification, class, template, script and properties.

Installation instructions

  1. Download the HandyTapestry.jar from the download page
  2. Put the plugin jar into the idea_home/plugins folder
  3. Restart Idea
  4. Open web project and press yes in the "Enable tapestry support?" dialog
  5. Choose the HandyTapestry license* in the license dialog

*You can download evaluation license from the download page.

Tapestry project structure

The Tapestry component consists from:
  • Java class (with properties and listener methods)
  • Template (HTML file)
  • Specification (jwc extension, defines component class)
  • Properties file (localized strings)
  • Script file (script extension)
The Java class resides in the Java source folder, other component files reside in the component root folder. The Tapestry page consists from same files**, page template resides in the page root folder, other page files reside in the WEB-INF folder. The supported project structure is below:
MY_PROJECT
	PAGE_ROOT
		COMPONENT_ROOT
			EditGroup.html
			EditGroup.jwc
			EditGroup.properties
			EditGroup.script
		Home.html
	WEB-INF
		Home.properties
		Home.script
	...
The future versions may support other project structures. You can change template, specification and script extensions in the release version.

** Plugin doesn't support page specification yet

Plugin configuration

Go to Settings and open HandyTapestry configuration: Configuration dialog

Please select page, component and WEB-INF folders (for details see Tapestry project structure). Also you can select packages for component and page classes. If you add component libraries to the project through application file:

	<library id="contrib"
		specification-path="/org/apache/tapestry/contrib/Contrib.library"/>
then specify application file location.