Tapestry5 jQuery provides jQuery Components and can fully replace Prototype and Scriptaculous by jQuery

Tapestry5 JQuery
The "Tapestry5-jQuery" is an open sourced Tapestry 5 library from Atos WorldLine. It aims to make it possible to replace the Prototype/Scriptaculous JS layer of Tapestry: all its components, mixins or any other JS interactions. It also provided advanced UI component framework for easily integrating Ajax capabilities into business applications using Tapestry5

Tapestry 5 has a loose coupling on Prototype and Scriptaculous on a lot of points. But there are some rooms where the coupling is very tight. Current project version covers all Tapestry basic components and mixins. The project was built having also in mind that the integration of this library should be as much as possible transparent for end user. Whenever only JS layers of components where overriden in order to continue to use normal component declaration.

Project is hosted Github under the Got5 account. Tapestry5-jquery is based on Tapestry 5.3, jQuery, jQuery UI or any plugins.

How to use it

Just add tapestry5-jquery to your classpath (see Maven dependency snippet below)!

Then use components like you would normally do. For Autocomplete and Palette use "jquery" namespace:

<t:form> <t:jquery.autocomplete /> <t:submit /> </t:form>

Or add jquery to the tapestry-library namespace:

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter" xmlns:j="tapestry-library:jquery"> <t:form> <j:palette /> <t:textfield t:mixins="jquery/autocomplete" ... /> <t:submit /> </t:form> </html>

You still need to have PrototypeJS and the components originally included in tapestry ?

Tapestry5-jquery project allows you to choose whether to include or not Prototype (and original tapestry components). jQuery will be added to the javascript stack in every case. In your AppModule, contributeApplicationDefaults method, you can add `configuration.add(JQuerySymbolConstants.SUPPRESS_PROTOTYPE, "false");`

Note about jQuery

In traditional jQuery development, we are used to manipulate the `$` alias to select the elements we want to play with. jQuery allows us to change this default alias (for compatibility with other js frameworks also using the `$` alias : like PrototypeJS, included in Tapestry, for example). The tapestry5-jquery project has an option permitting you to customize this alias : in your AppModule, contributeApplicationDefaults method, you can add `configuration.add(JQuerySymbolConstants.JQUERY_ALIAS, "yourOwnAlias");`. The default jquery alias is `$`. By the way, if you've set the `JQuerySymbolConstants.SUPPRESS_PROTOTYPE` option to false, you may not use `$` to refer to jQuery, because `$` actually refers to Prototype. Thus, you may want to change jQuery's alias in that particular case. However, if you didn't change it, jQuery's alias will automatically be set to `$j`.

Maven dependency description:

<dependencies> ... <dependency> <groupId>org.got5</groupId> <artifactId>tapestry5-jquery</artifactId> <version>3.3.1</version> </dependency> ... </dependencies> <repositories> ... <repository> <id>devlab722-repo</id> <url> http://nexus.devlab722.net/nexus/content/repositories/releases </url> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>devlab722-snapshot-repo</id> <url> http://nexus.devlab722.net/nexus/content/repositories/snapshots </url> <releases> <enabled>false</enabled> </releases> </repository> ... </repositories>

Gradle dependency description:

dependencies { compile group: 'org.got5', name: 'tapestry5-jquery', version: '3.3.1' } repositories { mavenCentral() maven { url "http://nexus.devlab722.net/nexus/content/repositories/releases" } }

List Of Contributors

- Robin KOMIWES as robink
- Andreas ANDREOU as andyhot
- Christian RIEDEL as criedel
- Francois FACON as got5
- Tom van DIJK as trolando
- Emmanuel DEMEY as Gillespie59
- Clement USTER as cluster
- Amaury WILLEMANT as awillemant
- Barry BOOKS as trsvax
- Pablo NUSSEMBAUL as bauna
- Alexander OBLOVATNIY


Christophe Furmaniak


3.0.1 :
  • add Mixins : Confirm, ContextMenu
3.0.0 :
  • Switch to Tapestry 5.3 (new JavaScript Layer)
  • add Components : Gallery
2.6.1 :
  • improve Validation Mecanism and DataTable Component
  • add Components : InPlaceEditor, Draggable
  • add Mixins : ZoneRefresh, ZoneDroppable
2.6.0 :
  • Switch to Tapestry 5.2.6
  • Add Mixins : CustomZone, Widget
  • Other Mecanisms : EffectsParam, WidgetParams, Selector Binding
2.1.1 :
  • Add Components : Carousel, Checkbox, RangeSlide, Slider, Superfish
  • Add Mixins : CustomDatepicker, Mask, Reveal, Tooltip
2.1.0 :
  • Switch to Tapestry 5.2.5
  • Add (Tabs, Accordion, AjaxUpload, Button)
  • Exclusive jQuery components
  • Initial releases