blob: cf7885334fdbc2872053e958c4e59eb56c2d4121 [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN"
"http://maven.apache.org/dtd/xdoc_1_0.dtd">
<document>
<properties>
<title>Tapestry 4.1 - Dojo Integrated</title>
<author email="jkuhnert@apache.org">Jesse Kuhnert</author>
</properties>
<body>
<section name="Tapestry 4.1 - Dojo Integrated">
<p>
Tapestry is an open-source framework for creating dynamic, robust, highly scalable
web applications in Java. Tapestry complements and builds upon the standard Java
Servlet API, and so it works in any servlet container or application server.
</p>
<p>
This development series is focused around providing a full layer of support for building
highly dynamic web applications (XHR/ajax/dhtml). Whether you would like to sprinkle in a
few tiny ajax effects in an existing application, or build a full featured <em>heavy client</em>
application Tapestry(and <a href="http://dojotoolkit.org">dojo</a>) should be able to
support your needs.
<a href="http://opencomponentry.com:8080/timetracker"><img style="float:right;margin-top:8px;margin-left:8px" src="./images/autocompleter.png" alt="Autocompleting select component" /></a>
</p>
<p><strong>New Features:</strong></p>
<ul>
<li><b>JSON -</b> Brand new <a href="apidocs/org/apache/tapestry/IJSONRender.html">API</a>
enabling data communication via the
<a href="http://json.org/">JSON</a>(JavaScript Object Notation)
standard. New <a href="apidocs/org/apache/tapestry/dojo/IWidget.html">component classes</a>
and <a href="apidocs/org/apache/tapestry/services/ResponseBuilder.html">rendering schemes</a> also accompany the API addition, allowing anyone to easily
add JSON communication to an existing component or new components. </li>
<li><b>XHR -</b> The ever popular XML communication format has also been added into the
<a href="apidocs/org/apache/tapestry/services/impl/DojoAjaxResponseBuilder.html">Tapestry core</a>,
allowing most of the common <em>ajax</em> concepts to be easily developed in yours
and existing Tapestry components.</li>
<li><b><a href="http://dojotoolkit.org">Dojo</a> bundled -</b> As all of the functionality
in this release is based around the <a href="http://dojotoolkit.org">dojo</a>
javascript toolkit, we have provided it bundled with the core Tapestry jar
files. No profile building/installation necessary. Just drop the jars in and
get at all of the client side goodies you like.</li>
<li><b>Widgets -</b> New <a href="http://dojotoolkit.org">dojo</a> toolkit based
<a href="apidocs/org/apache/tapestry/dojo/form/Autocompleter.html">widget</a>
<a href="apidocs/org/apache/tapestry/dojo/form/DropdownDatePicker.html">components</a>
and complimenting <a href="apidocs/org/apache/tapestry/dojo/form/IFormWidget.html">foundation</a> Component classes make it easy for anyone to create
dojo widgets and use them as Tapestry components. The initial 4.1 release won't be
as focused on providing new components as it will solid infrastructure support, but
more and more will be included as the release matures. Currently included are
<em><a href="components/dojo/autocompleter.html">Autocompleter</a>
,
<a href="components/dojo/dropdowndatepicker.html">DropdownDatePicker</a>
,
<a href="components/dojo/dropdowntimepicker.html">DropdownTimePicker</a></em>.</li>
<li><b>Client Side Validation -</b> The <a href="usersguide/clientside-validation.html">client side validation</a> support
in Tapestry has been completely replaced with a new <a href="http://dojotoolkit.org">dojo</a> based API,
providing richer and <a href="javascript/form-validation.html">more complete</a> validation than has been
seen in previous releases. All of the validation constraints that can be specified on the server now have
client side functional equivalents. Default logic for displaying validation errors/interactions on the client side
UI has also been updated a great deal. The old alert box mechanism has been replaced by field
decorators that apply css rules to your form fields, as well as dhtml dialog boxes displaying
summaries of errors. Much much more is planned in this area, but the current set of functionality
should be more than enough to make many happy.</li>
<li><b>New Annotations -</b> Perhaps the most exciting new addition, a new <a href="tapestry-annotations/index.html#EventListener">@EventListener</a>
annotation has been added. This will allow people to bind one of their page/component
class listeners to virtually any client side widget/html event concievable. The API also supports
varying types of listening, such as being able to submit a form when a particular event happens,
or simplying using the new <a href="apidocs/org/apache/tapestry/event/BrowserEvent.html">BrowserEvent</a>
object to determine the client side state when the event happened.
<em>(Such as x/y coordinates of mouse clicks, event targets, etc..This is pretty
much a literal one-to-one mapping to real browser generated Events.)</em></li>
<li><b>Rounded Corner/Drop Shadow services -</b> <a href="developmentguide/hivemind/roundedcorners.html">Check out</a> some of the cool new
<a href="developmentguide/hivemind/roundedcorners.html">image generation services</a> available.
<br />
<img src="images/rounded-blue.gif" alt="Blue Rounded Corner" style="margin-right:6px; margin-top:6px;"/>
<img src="images/rounded-orange.gif" alt="Orange Rounded Corner" style="margin-top:6px;"/>
</li>
</ul>
<subsection name="New Tutorials!">
<p>
A great new <a href="tutorials/index.html">Devshed Tutorial Series</a> written by <a href="http://sundraw.ws/">Alexander Kolesnikov</a> has been slowly
building up as he continues to pump new articles out.
</p>
<br /><br />
<p>
The amount of material covered is closer to being an actual book than a random set of tutorials. This is
well worth reading for anyone wanting to get a better overall handle on using Tapestry 4.
</p>
</subsection>
<subsection name="Getting started?: Try the Tapestry 4 Archetype">
<p>
Try the maven2 <a href="tapestry-archetype/index.html">Archetype</a> to bootstrap your project with some typical configurations.
</p>
</subsection>
</section>
<section name="Dojo">
<p>
<a href="http://dojotoolkit.org"><img src="./images/small-dojo-logo.png" alt="Dojo Toolkit" style="float:right" /></a>
Most of the functionality in this series is based entirely on the wonderful
<a href="http://dojotoolkit.org">Dojo</a> javascript toolkit library. Not to
say that you won't easily be able to plug in another toolkit if you like, just
that the defaults will all be based around dojo.
</p>
</section>
</body>
</document>