You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by gk...@apache.org on 2008/07/16 12:10:44 UTC
svn commit: r677225 [1/3] - in /cocoon/site/site/2.2/blocks/forms/1.0: ./
apidocs/
Author: gkossakowski
Date: Wed Jul 16 03:10:42 2008
New Revision: 677225
URL: http://svn.apache.org/viewvc?rev=677225&view=rev
Log:
Publish some of new docs.
Modified:
cocoon/site/site/2.2/blocks/forms/1.0/1027_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/1035_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/1147_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/1161_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/1351_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/1444_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/475_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/476_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/477_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/478_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/479_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/480_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/481_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/482_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/483_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/484_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/485_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/486_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/487_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/488_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/489_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/490_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/491_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/492_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/493_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/494_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/495_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/496_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/497_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/498_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/685_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/733_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/738_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/739_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/740_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/741_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/742_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/743_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/750_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/752_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/753_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/754_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/755_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/904_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/915_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/978_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/994_1_1.html
cocoon/site/site/2.2/blocks/forms/1.0/apidocs/index.html
cocoon/site/site/2.2/blocks/forms/1.0/changes-report.html
cocoon/site/site/2.2/blocks/forms/1.0/license.html
cocoon/site/site/2.2/blocks/forms/1.0/project-info.html
cocoon/site/site/2.2/blocks/forms/1.0/project-reports.html
cocoon/site/site/2.2/blocks/forms/1.0/team-list.html
Modified: cocoon/site/site/2.2/blocks/forms/1.0/1027_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/1027_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/1027_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/1027_1_1.html Wed Jul 16 03:10:42 2008
@@ -326,8 +326,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
Modified: cocoon/site/site/2.2/blocks/forms/1.0/1035_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/1035_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/1035_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/1035_1_1.html Wed Jul 16 03:10:42 2008
@@ -326,8 +326,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
Modified: cocoon/site/site/2.2/blocks/forms/1.0/1147_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/1147_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/1147_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/1147_1_1.html Wed Jul 16 03:10:42 2008
@@ -338,8 +338,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -348,7 +346,7 @@
</li>
</ul>
<div id="contentBody"><div id="bodyText"><h1 class="docTitle">CSS</h1><p>The library XSLTs provide CSS classes in the generated HTML. It's
-responsibility of the page layout XSL to link to a CSS.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Common fields styling</h1><p>The general rule for common fields (styled by forms-field-styling.xsl) is to
+responsibility of the page layout XSL to link to a CSS.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Common fields styling</h1><p>The general rule for common fields (styled by forms-field-styling.xsl) is to
apply the following classes :</p><ul>
<li>"forms" : is always placed, to avoid name clashes with already present
site-specific classes.</li>
@@ -389,7 +387,7 @@
paragraphs that contains the header and footer of the errors recap.</li>
<li>"validation-errors-content" : applied to the "li" element of the errors
list.</li>
-</ul><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Page styling</h1>Another set of classes is used for page styling (forms-page-styling.xsl). The
+</ul><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Page styling</h1>Another set of classes is used for page styling (forms-page-styling.xsl). The
general rule for fi:group is to apply the following classes :<ul>
<li>"forms" : as always placed to mark a cocoon forms CSS class.</li>
<li>"group" : identify a group class</li>
@@ -431,7 +429,7 @@
<li>"active" : marks the currently active tab.</li>
<li>"validation-message" : applied to the span placed in a tab when there are
validation-messages in any control inside that tab.</li>
-</ul><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Compatibility with old classes</h1>The cocoon forms XSLs prior to this patch used a few CSS classes for tabs,
+</ul><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Compatibility with old classes</h1>The cocoon forms XSLs prior to this patch used a few CSS classes for tabs,
required marks, validation messages and another few elements. These classes have
been mantained to grant backward compatibilty, but should not be used anymore.
</div><div class="editUrl"><div><em>Errors and Improvements?</em> If you see any errors or potential improvements in this document please help
Modified: cocoon/site/site/2.2/blocks/forms/1.0/1161_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/1161_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/1161_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/1161_1_1.html Wed Jul 16 03:10:42 2008
@@ -394,8 +394,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -403,12 +401,12 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Calculated fields</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Concept</h1><p>A calculated field is a widget that calculated it's own value using an
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Calculated fields</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Concept</h1><p>A calculated field is a widget that calculated it's own value using an
algorithm and values of other widgets. For example, if you are creating a form
for a shopping cart, you'll probably have a repeater with items your customer is
buying, each one with it's price, it's quantity, a subtotal and a grand total at
the end of it. That total and subtotal fields are a typical use case of
-calculated fields.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Definition</h1><p>Configuration example :</p><pre><fd:calculatedfield id="..." required="true|false">
+calculated fields.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Definition</h1><p>Configuration example :</p><pre><fd:calculatedfield id="..." required="true|false">
<fd:label>...</fd:label>
<fd:datatype base="...">
<fd:convertor type="..."/>
@@ -431,8 +429,8 @@
override the algorithm assumption.The calculations are done at server side. Whenever a trigger field gets its
value changed by user interaction, the form is submitted, recalculated server
side, and redisplayed to the user. Thus the usage of AJAX is highly recommended
-in a form that uses many calculated fields.<h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Algorithms</h1><p>Four algorithms are provided in cocoon : simple expression (default),
-repeated expression, javascript and java.</p><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Simple expression</h2><p>The simple expression algorithm is the default one, and is based on XReporter
+in a form that uses many calculated fields.<h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Algorithms</h1><p>Four algorithms are provided in cocoon : simple expression (default),
+repeated expression, javascript and java.</p><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Simple expression</h2><p>The simple expression algorithm is the default one, and is based on XReporter
expressions.</p><p>Only the <tt>eval</tt> attribute is required, because this is the default
algorithm (so no <tt>type</tt> needed) and it can guess its triggers parsing the
expression.</p><p>So you can simply write :</p><pre><fd:calculatedfield id="subTotal" state="output">
@@ -474,7 +472,7 @@
</fd:calculatedfield></pre><p>"cart" is the name of a repeater, and "/./" means "every row". So
<tt>Sum({cart/./items})</tt> simply means "Sum the value of the <tt>items</tt>
widget in every row of the <tt>cart</tt> repeater". As you can see, the
-<tt>grandTotal</tt> field is a sum of calculated fields.</p><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Repeated expression</h2><p>The repeated expression is similar to a simple expression, but is repeated
+<tt>grandTotal</tt> field is a sum of calculated fields.</p><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Repeated expression</h2><p>The repeated expression is similar to a simple expression, but is repeated
for each indicated widget. The syntax is as follows :</p><pre><fd:value type="repeated" repeat-on="..." eval="..." [initial-value="..."]/></pre><ul>
<li><strong>type</strong> is used to indicate which algorithm we are using, in
this case "<tt>repeated</tt>"</li>
@@ -508,7 +506,7 @@
</pre>Obviously, we have the <tt>Sum</tt> function which is by far simpler, but the
repeated expression could be used for example :To count all items with a price higher than 100:<pre><fd:value type="repeated" repeat-on="/cart/./price" eval="formulaResult + If(formulaCurrent > 100, 1, 0)"/> </pre>(read : the result is the previous result plus one if current price value is
over 100, 0 if it's less than 100)To obtain a sum of all movements in a report, wether they are positive or
-negative amount movements:<pre><fd:value type="repeated" repeat-on="report/./amount" eval="formulaResult + Abs(formulaCurrent)"/></pre>To obtain a multiplicatory :<pre><fd:value type="repeated" repeat-on="data/./operand" eval="formulaResult * formulaCurrent" initial-value="1"/></pre><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Javascript</h2>There are obviously situations where the simple or repeated expressions are
+negative amount movements:<pre><fd:value type="repeated" repeat-on="report/./amount" eval="formulaResult + Abs(formulaCurrent)"/></pre>To obtain a multiplicatory :<pre><fd:value type="repeated" repeat-on="data/./operand" eval="formulaResult * formulaCurrent" initial-value="1"/></pre><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Javascript</h2>There are obviously situations where the simple or repeated expressions are
not enought, so you can use javascript to quickly write your own calculated
field algorithm :<pre><fd:value type="javascript" triggers="...">
... you javascript code here ...
@@ -541,7 +539,7 @@
}
</fd:value>
</fd:calculatedfield>
-</pre><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Java</h2>An algorithm can also be implemented as a java class. In this case the class
+</pre><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Java</h2>An algorithm can also be implemented as a java class. In this case the class
must either implement the <tt>CalculatedFieldAlgorithm</tt> interface, or
subclass the <tt>AbstractBaseAlgorithm</tt> class. The definition syntax is :
<pre><fd:value class="..." [triggers="..."]/></pre>A sample algorithm for the same discount policy could be the following :<pre>public class DiscountAlgorithm extends AbstractBaseAlgorithm {
Modified: cocoon/site/site/2.2/blocks/forms/1.0/1351_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/1351_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/1351_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/1351_1_1.html Wed Jul 16 03:10:42 2008
@@ -312,8 +312,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -321,20 +319,20 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Migration guide</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Introduction</h1><p>Forms block has been recently adapted to use features that servlet services
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Migration guide</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Introduction</h1><p>Forms block has been recently adapted to use features that servlet services
framework provides. For in-depth details of adoption process take a look at
<a href="http://issues.apache.org/jira/browse/COCOON-1991">COCOON-1991</a>
issue.</p><p>Here you'll find description of migration process which should be easy and
straightforward. It is assumed that you already have proper block structure
created with archetype, see <a href="../../../../2.2/1159_1_1.html">Your first Cocoon application
-using Maven 2</a>.</p><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Connecting servlets</h2><p>First of all, in order to get access to the resources that Forms block makes
+using Maven 2</a>.</p><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Connecting servlets</h2><p>First of all, in order to get access to the resources that Forms block makes
available you need to create a connection to its servlet. Open
src/main/resources/META-INF/cocoon/spring/servlet-service.xml for edition and
put this configuration inside <tt><servlet:context></tt> tag:</p><pre><servlet:connections>
<entry key="ajax" value-ref="org.apache.cocoon.ajax.impl.servlet"/>
<entry key="forms" value-ref="org.apache.cocoon.forms.impl.servlet"/>
</servlet:connections>
-</pre><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Correcting links and paths</h2><p>You will need to perform massive find-and-replace operation multiple times.
+</pre><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Correcting links and paths</h2><p>You will need to perform massive find-and-replace operation multiple times.
Previously, all external (available to the browser) resources were loaded with
special <tt>_cocoon/**</tt> matcher and internal resources (like XSL files) were
loaded with <tt>resource://</tt> scheme. Both are now considered as bad
@@ -361,14 +359,14 @@
resource://org/apache/cocoon/forms/resources/forms-advanced-field-styling.xsl
servlet:forms:/resource/internal/xsl/forms-advanced-field-styling.xsl
-</pre><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">forms-samples-styling.xsl</h2><p>If you use forms-samples-styling.xsl for transforming your Forms into HTML
+</pre><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">forms-samples-styling.xsl</h2><p>If you use forms-samples-styling.xsl for transforming your Forms into HTML
code you will have to update it to newer version. Important change (apart from
modified paths mentioned above) is that you should replace this fragment:</p><pre><!-- Location of the resources directory, where JS libs and icons are stored -->
<xsl:param name="resources-uri">resources</xsl:param>
</pre><p>with this one:</p><pre><!-- Location of the resources directories, where JS libs and icons are stored -->
<xsl:param name="dojo-resources"/>
<xsl:param name="forms-resources"/>
-</pre><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Javascript adjustments (for widgets authors)</h2><p>If you happened to write custom widget you probably will need to adjust your
+</pre><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Javascript adjustments (for widgets authors)</h2><p>If you happened to write custom widget you probably will need to adjust your
code, also. Unfortunately, this step can be more troublesome than others and can
demand from you better understanding of the changes that has been incorporated
into Forms code during refactoring process. Here, the most important issues will
@@ -417,13 +415,13 @@
<tt>"servlet:/resource/external/yourwidget/"</tt> or similar.<br></br>
If you use Forms URI, don't forget to remove redundant <tt>"/forms"</tt> prefix
(see example above).</p><div class="note"><div><strong>Note: </strong>It has been removed because there is no universal
-<tt xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">_cocoon/**</tt> matcher loading resources for all blocks (including Forms);
+<tt xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">_cocoon/**</tt> matcher loading resources for all blocks (including Forms);
now every block is responsible on its own for loading its resources. Even more,
there is no universal pattern for resources URLs because blocks can be mounted
at different locations. You may think that situation is worse than it used to be
but it's not the case. If you think that I suggest to learn more about servlet
service framework.</div></div><p>If you have additional questions don't hesitate to ask for a help on user's
-mailing list.</p><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Sitemap adjustments</h2><p>Obviously, you have to adjust your sitemap too to pass new parameters:</p><pre><map:transform src="resources/forms-samples-styling.xsl">
+mailing list.</p><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Sitemap adjustments</h2><p>Obviously, you have to adjust your sitemap too to pass new parameters:</p><pre><map:transform src="resources/forms-samples-styling.xsl">
<map:parameter name="resources-uri" value="{request:contextPath}/_cocoon/resources"/>
</map:transform>
</pre><p>should be replaced with:</p><pre><map:transform src="resources/forms-samples-styling.xsl">
@@ -478,7 +476,7 @@
</pre><p>You should add that transformer to all pipelines that transform Forms code
into HTML.</p><p>Also, this is last step of whole migration process. After performing all
steps you need to rebuild your block and clear browser cache to get everything
-working as before refactoring and migration process.</p><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">See also</h2><p>You may also be interested with <a href="../../../../2.2/blocks/ajax/1.0/1350_1_1.html">AJAX migration
+working as before refactoring and migration process.</p><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">See also</h2><p>You may also be interested with <a href="../../../../2.2/blocks/ajax/1.0/1350_1_1.html">AJAX migration
guide</a>.</p></div><div class="editUrl"><div><em>Errors and Improvements?</em> If you see any errors or potential improvements in this document please help
us: <a href="http://cocoon.zones.apache.org/daisy/cdocs/1351?branch=1&language=1">View, Edit or comment</a> on the latest development version (registration required).
</div></div></div>
Modified: cocoon/site/site/2.2/blocks/forms/1.0/1444_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/1444_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/1444_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/1444_1_1.html Wed Jul 16 03:10:42 2008
@@ -330,8 +330,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -384,7 +382,7 @@
<tr class="a">
</tr>
</tbody>
-</table><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Maven 2 Dependency</h1><p>Add following dependency to your pom.xml file:</p><pre><dependency>
+</table><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Maven 2 Dependency</h1><p>Add following dependency to your pom.xml file:</p><pre><dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-forms-impl</artifactId>
<version>1.1.0</version>
Modified: cocoon/site/site/2.2/blocks/forms/1.0/475_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/475_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/475_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/475_1_1.html Wed Jul 16 03:10:42 2008
@@ -348,8 +348,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -357,9 +355,9 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Template Transformer</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Introduction</h1><p>The Forms Template Transformer can execute the <a href="755_1_1.html">CForms
-template</a> tags.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Usage</h1><p>For how to declare this transformer and how to embed it in a pipeline, see
-the Cocoon samples (the lazy doc writer approach).</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Special features of the forms transformer</h1><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Where the forms transformer looks for the form instance object</h2><p>Each time the forms transformer encounters a ft:form-template element, it
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Template Transformer</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Introduction</h1><p>The Forms Template Transformer can execute the <a href="755_1_1.html">CForms
+template</a> tags.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Usage</h1><p>For how to declare this transformer and how to embed it in a pipeline, see
+the Cocoon samples (the lazy doc writer approach).</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Special features of the forms transformer</h1><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Where the forms transformer looks for the form instance object</h2><p>Each time the forms transformer encounters a ft:form-template element, it
will try to retrieve a CForms form instance object. It looks for it in the
following locations:</p><ol type="1">
<li>if the ft:form-template element has a location attribute, then the value of
@@ -381,7 +379,7 @@
getParameter($parameters, 'sessionattr'))" ...</pre><p>As mentioned before, ft:form-template elements cannot be nested, but you can
have multiple ft:form-template elements on one page. Together with the location
attribute, this can be used to handle multiple forms occuring on one template.
-</p><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Action attribute on ft:form-template</h2><p>The forms transformer supports the execution of JXPath expressions that occur
+</p><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Action attribute on ft:form-template</h2><p>The forms transformer supports the execution of JXPath expressions that occur
in the action attribute of the ft:form-template element. This makes it possible
to embed the continuation ID in that attribute.</p><p>For example:</p><pre><ft:form-template action="#{$cocoon/continuation/id}.continue" ...</pre><p>The following objects are available in the JXPath context via the cocoon
object: continuation, requests, session and parameters. The context of the
Modified: cocoon/site/site/2.2/blocks/forms/1.0/476_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/476_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/476_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/476_1_1.html Wed Jul 16 03:10:42 2008
@@ -338,8 +338,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -347,7 +345,7 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Forms Generator</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Concept</h1><p>The FormsGenerator is a Cocoon generator that generates an XML representation
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Forms Generator</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Concept</h1><p>The FormsGenerator is a Cocoon generator that generates an XML representation
of a form instance object.</p></div><div class="editUrl"><div><em>Errors and Improvements?</em> If you see any errors or potential improvements in this document please help
us: <a href="http://cocoon.zones.apache.org/daisy/cdocs/476?branch=1&language=1">View, Edit or comment</a> on the latest development version (registration required).
</div></div></div>
Modified: cocoon/site/site/2.2/blocks/forms/1.0/477_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/477_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/477_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/477_1_1.html Wed Jul 16 03:10:42 2008
@@ -394,8 +394,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -403,7 +401,7 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Action widget</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Concept</h1><p>Used to trigger an action event on the server side. Usually presented as a
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Action widget</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Concept</h1><p>Used to trigger an action event on the server side. Usually presented as a
button the user can press (though this is not required). When an action widget
was activated, validation will not be performed. This is because usually it
would be strange to have other fields validated when the user's intention wasn't
@@ -411,7 +409,7 @@
<a href="493_1_1.html">submit widget</a>. After pressing an action button, the form
will normally always be redisplayed, unless the event handling code explicitely
disables this (by using the method <tt>endFormProcessing</tt> method on the
-<tt>Form</tt> object).</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Definition</h1><pre><fd:action id="..." command="..." state="...">
+<tt>Form</tt> object).</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Definition</h1><pre><fd:action id="..." command="..." state="...">
<fd:label>...</fd:label>
<fd:help>...</fd:help>
<fd:hint>...</fd:hint>
@@ -431,8 +429,8 @@
action-command (now deprecated).</p><p>For more information on how event handlers are defined, see
<a href="479_1_1.html">Event Handling</a>. The interface to be implemented for Java
event listeners is <tt>org.apache.cocoon.forms.event.ActionListener</tt>. The
-WidgetEvent subclass is <tt>org.apache.cocoon.forms.event.ActionEvent</tt>.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Template</h1><p>An action widget is inserted in a template using the ft:widget tag:</p><pre><ft:widget id="..."/>
-</pre><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Styling (default HTML XSL)</h1><p>By default an action widget is shown as a button.</p><p>To render the action widget as an image:</p><pre><ft:widget id="...">
+WidgetEvent subclass is <tt>org.apache.cocoon.forms.event.ActionEvent</tt>.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Template</h1><p>An action widget is inserted in a template using the ft:widget tag:</p><pre><ft:widget id="..."/>
+</pre><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Styling (default HTML XSL)</h1><p>By default an action widget is shown as a button.</p><p>To render the action widget as an image:</p><pre><ft:widget id="...">
<fi:styling type="image" src="foo.gif">
</ft:widget>
</pre><p>To render the action widget as a link:</p><pre><ft:widget id="...">
Modified: cocoon/site/site/2.2/blocks/forms/1.0/478_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/478_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/478_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/478_1_1.html Wed Jul 16 03:10:42 2008
@@ -330,8 +330,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -339,14 +337,14 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">A Simple Example</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">A simple CForms example</h1><p>In this example we will show how to create a simple registration form using
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">A Simple Example</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">A simple CForms example</h1><p>In this example we will show how to create a simple registration form using
CForms and flowscript. We will follow to following steps:</p><ol type="1">
<li>Create a block for this sample</li>
<li>Create a form definition file</li>
<li>Create a template file</li>
<li>Write a bit of flowscript</li>
<li>Add some pipelines to the sitemap</li>
-</ol>Here is a screenshot of the form we're going to create:<img width="387" height="283" name="forms_registrationform" alt="forms_registrationform" src="images/350_1_1.img"></img><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Create a block</h1>This has been covered in the tutorial, but it won't hurt to recall this Maven
+</ol>Here is a screenshot of the form we're going to create:<img width="387" height="283" name="forms_registrationform" alt="forms_registrationform" src="images/350_1_1.img"></img><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Create a block</h1>This has been covered in the tutorial, but it won't hurt to recall this Maven
goal:<pre>mvn org.apache.maven.plugins:maven-archetype-plugin:1.0-alpha-7:create
-DarchetypeGroupId=org.apache.cocoon
-DarchetypeArtifactId=cocoon-22-archetype-block
@@ -365,7 +363,7 @@
the following in the<tt> <servlet:context></tt> element:</p><pre><servlet:connections>
<entry key="ajax" value-ref="org.apache.cocoon.ajax.impl.servlet"/>
<entry key="forms" value-ref="org.apache.cocoon.forms.impl.servlet"/>
-</servlet:connections></pre><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Create a form definition file</h1><p>Below the form definition file is displayed,
+</servlet:connections></pre><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Create a form definition file</h1><p>Below the form definition file is displayed,
<tt>registration_definition.xml</tt> (to be put under
<tt>src/main/resources/COB-INF/resource/internal</tt> directory). This lists all
the widgets in the form, together with their configuration information:</p><pre><?xml version="1.0" encoding="UTF-8"?>
@@ -431,7 +429,7 @@
On the one hand, this can be used to provide rich formatting in the label. But
it also enables you to put i18n-elements in there, to be interpreted by the
I18nTransformer. This way, internationalisation is done using standard Cocoon
-techniques.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Create a template file</h1><p>Here is the template for our registration form example,
+techniques.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Create a template file</h1><p>Here is the template for our registration form example,
<tt>registration_template.xml</tt> (to be put under
<tt>src/main/resources/COB-INF/resource/internal</tt> directory):</p><pre><?xml version="1.0" encoding="UTF-8"?>
<html xmlns:ft="http://apache.org/cocoon/forms/1.0#template"
@@ -490,7 +488,7 @@
used.</p><p>As an alternative to the template approach, you could also use the
FormsGenerator, which will generate an XML representation of the whole form, and
style that with a custom-written XSLT. For most users we recommend the template
-approach though.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Write a bit of flowscript</h1><p>Flowscript is Cocoon's solution to handling the flow of a web interaction. It
+approach though.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Write a bit of flowscript</h1><p>Flowscript is Cocoon's solution to handling the flow of a web interaction. It
is based on the concept of continuations. If you don't know yet about
continuations and flowscript, <a href="NO_LINK">learn about it here</a>.</p><p>Here's the flowscript for our example, <tt>registration.js</tt> (put it under
<tt>src/main/resources/COB-INF/flow</tt>):</p><pre>cocoon.load("servlet:forms:/resource/internal/flow/javascript/Form.js");
@@ -510,7 +508,7 @@
parameter to the showForm function, we pass the sitemap pipeline to be used to
display the form.</p><p>Finally we get some data from the form (the entered name), and call a sitemap
pipeline to display this data. This pipeline is based on the JXTemplate
-generator.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Add some pipelines to the sitemap</h1><p>The sitemap.xmap has to be modified as well:</p><p>First, an i18n dictionary has to be definied:</p><pre> <map:components>
+generator.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Add some pipelines to the sitemap</h1><p>The sitemap.xmap has to be modified as well:</p><p>First, an i18n dictionary has to be definied:</p><pre> <map:components>
<map:transformers default="xslt">
<map:transformer name="i18n"
src="org.apache.cocoon.transformation.I18nTransformer">
@@ -613,10 +611,10 @@
</xsl:stylesheet>
-</pre><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Try it out</h1>If you have created all the files mentioned above, you can now try out this
+</pre><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Try it out</h1>If you have created all the files mentioned above, you can now try out this
sample.Build the thing and fire up jetty:<pre>mvn jetty:run
</pre>Direct your browser to:<pre>http://localhost:8888/simple-sample/registration
-</pre>Try entering incorrect data and see what it does.<h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Next steps</h1>The example we have studied here is quite simple. It might seem elaborate for
+</pre>Try entering incorrect data and see what it does.<h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Next steps</h1>The example we have studied here is quite simple. It might seem elaborate for
a simple form (though notice you didn't have to write any Java for all of this,
nor to restart Cocoon), but adding more complexity to the form is now simply a
matter of adding more widgets, custom validation logic, event handlers, etc. To
Modified: cocoon/site/site/2.2/blocks/forms/1.0/479_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/479_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/479_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/479_1_1.html Wed Jul 16 03:10:42 2008
@@ -334,8 +334,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -343,7 +341,7 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Cocoon Forms: Event Handling</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Intro</h1><p>Some types of widgets can emit events. For example, the action widget
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Cocoon Forms: Event Handling</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Intro</h1><p>Some types of widgets can emit events. For example, the action widget
produces ActionEvents and the field widget produces ValueChangedEvents. Next to
these events, there are also ProcessingPhaseEvents, fired in between the various
phases of the processing of a request, and RepeaterEvents fired by a repeater
@@ -353,7 +351,7 @@
<li>by adding event listeners dynamically on widget instances.</li>
<li>by registering a <tt>FormHandler</tt> on the Form object. This FormHandler
will receive all events from all widgets.</li>
-</ul><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">When are events processed? (Request processing phases)</h1>To answer the question "When are events processed?", we have to look a bit
+</ul><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">When are events processed? (Request processing phases)</h1>To answer the question "When are events processed?", we have to look a bit
deeper into how a form request is handled. This is separated in a couple of
phases, more specifically the following ones:<ul>
<li>Any outstanding events are broadcasted to the event listeners.<br></br>
@@ -374,12 +372,12 @@
<li>All widgets in the widget tree validate themselves.</li>
<li>ProcessingPhaseListeners are informed that the <tt>VALIDATE</tt> phase has
ended.</li>
-</ul><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Recursive event loops</h1>Event listeners themselves might call methods on widgets which cause new
+</ul><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Recursive event loops</h1>Event listeners themselves might call methods on widgets which cause new
events to be generated. You have to be careful not to cause recursive event
loops by doing this.For example, calling setValue on a widget in a ValueChangedEvent caused by
that widget will schedule a new ValueChangedEvent, which will then again cause
the execution of the event listener which will then again call setValue and thus
-again cause a new event to be generated, and so on.<h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Defining event handlers in the form definition</h1>Event handlers can be specified as part of the form definition, as child of
+again cause a new event to be generated, and so on.<h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Defining event handlers in the form definition</h1>Event handlers can be specified as part of the form definition, as child of
the various wd:on-xxx elements, such as wd:on-action for the action widget.Event handlers can be written in either javascript or java. The form
definition syntax is as follows:<pre><fd:on-xxxx>
<javascript>
@@ -387,7 +385,7 @@
</javascript>
<java class="..."/>
</fd:on-xxxx></pre>You can specify as many <tt><javascript></tt> and/or
-<tt><java></tt> event listeners as you want.<h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Javascript event listeners</h2>Objects available in the Javascript snippet:<ul>
+<tt><java></tt> event listeners as you want.<h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Javascript event listeners</h2>Objects available in the Javascript snippet:<ul>
<li><tt>event</tt>: a subclass of WidgetEvent. The reference documentation of
the individual widgets mentions which WidgetEvent subclass they provide in their
events. You can then check the javadoc for those classes to see what they
@@ -401,10 +399,10 @@
Model</a>).</li>
</ul><div class="note"><div><strong>Note: </strong>It does not make sense to create continuations from the
Javascript event handler. In other words, do not call
-<tt xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">cocoon.sendPageAndWait</tt> or <tt xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">form.showForm</tt> from there.</div></div><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Java event listeners</h2>The Java class specified in the class attribute on the java element should
+<tt xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">cocoon.sendPageAndWait</tt> or <tt xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">form.showForm</tt> from there.</div></div><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Java event listeners</h2>The Java class specified in the class attribute on the java element should
implement a certain event listener interface. Which interface depends on the
type of widget. See the documentation of the individual widgets for more
-information.<h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Adding event listeners on widget instances</h1>Adding event listeners on widgets instances allows to dynamically add event
+information.<h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Adding event listeners on widget instances</h1>Adding event listeners on widgets instances allows to dynamically add event
listeners at runtime. This is often convenient: as you control the creation of
the event listeners yourself, you can pass them any information you need.To add an event listener on a widget instance, simply call the appropriate
method on the widget (e.g. addValueChangedListener) with an appropriate listener
@@ -412,10 +410,10 @@
(e.g. removeValueChangedListener).When using flowscript, it is possible to simply assign Javascript functions
as event listeners. This is a very easy and powerful way to create event
listeners. See the <a href="491_1_1.html">flowscript API section</a> for more
-information.<h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Handling events using the FormHandler</h1>To handle events using a FormHandler, write a class implementing the
+information.<h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Handling events using the FormHandler</h1>To handle events using a FormHandler, write a class implementing the
following interface:<pre>org.apache.cocoon.woody.event.FormHandler</pre>Alternatively you can extend from the following abstract class:<pre>org.apache.cocoon.woody.event.AbstractFormHandler</pre>which will split ActionEvents and ValueChangedEvents to two different
methods. See the javadocs of these interfaces and classes for more details.<p>Once you created the FormHandler, register it on a form instance by calling
-the method <tt>setFormHandler(FormHandler formHandler)</tt> on it.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Overview of supported events</h1><p>The figure below shows the 3 types of events we currently support, each
+the method <tt>setFormHandler(FormHandler formHandler)</tt> on it.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Overview of supported events</h1><p>The figure below shows the 3 types of events we currently support, each
extending from the common WidgetEvent class.</p><p><img width="520" height="192" name="forms_event_types" alt="forms_event_types" src="images/377_1_1.img"></img></p><p>The full types of the event listeners and event objects are:</p><pre>org.apache.cocoon.forms.event.ValueChangedListener
org.apache.cocoon.forms.event.ValueChangedEvent
Modified: cocoon/site/site/2.2/blocks/forms/1.0/480_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/480_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/480_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/480_1_1.html Wed Jul 16 03:10:42 2008
@@ -348,8 +348,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -357,12 +355,12 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Template Generator</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Concept</h1><p>An implementation of the <a href="755_1_1.html">CForms template elements</a>
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Template Generator</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Concept</h1><p>An implementation of the <a href="755_1_1.html">CForms template elements</a>
using macros for the <a href="NO_LINK">JXTemplate</a> generator.</p><p>Compared to the alternative implementation, the forms transformer, this
JXTemplate-based approach makes it possible to dynamically include additional
data on the form page and to conditionally include parts of the page (and thus
conditionally show widgets). Think of the possibility of not showing a repeater
-table if the repeater contains no rows, and this also for nested repeaters.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Usage</h1><p>Simply include the following jx statement into your template file:</p><pre><jx:import uri="resource://org/apache/cocoon/forms/generation/jx-macros.xml"/></pre><div class="note"><div><strong>Note: </strong>If you were using the forms template transformer before, you
+table if the repeater contains no rows, and this also for nested repeaters.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Usage</h1><p>Simply include the following jx statement into your template file:</p><pre><jx:import uri="resource://org/apache/cocoon/forms/generation/jx-macros.xml"/></pre><div class="note"><div><strong>Note: </strong>If you were using the forms template transformer before, you
should remove it from the pipeline.</div></div></div><div class="editUrl"><div><em>Errors and Improvements?</em> If you see any errors or potential improvements in this document please help
us: <a href="http://cocoon.zones.apache.org/daisy/cdocs/480?branch=1&language=1">View, Edit or comment</a> on the latest development version (registration required).
</div></div></div>
Modified: cocoon/site/site/2.2/blocks/forms/1.0/481_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/481_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/481_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/481_1_1.html Wed Jul 16 03:10:42 2008
@@ -394,8 +394,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -403,9 +401,9 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Field widget</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Concept</h1><p>The field widget is the most common widget. It is used both for text boxes or
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Field widget</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Concept</h1><p>The field widget is the most common widget. It is used both for text boxes or
selection lists. It can be associated with different datatypes such as string,
-long or date to ask for different types of data.</p><p><img width="556" height="192" name="forms_field_datatype_relation" alt="forms_field_datatype_relation" src="images/409_1_1.img"></img></p><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Datatypes</h2><p>A datatype represents a certain type of data, such as a string, integer,
+long or date to ask for different types of data.</p><p><img width="556" height="192" name="forms_field_datatype_relation" alt="forms_field_datatype_relation" src="images/409_1_1.img"></img></p><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Datatypes</h2><p>A datatype represents a certain type of data, such as a string, integer,
decimal or date. Each datatype matches to a certain Java class. If you associate
a field widget with a datatype, its setValue(Object) and getValue() methods will
take, respectively return objects that are instances of that Java class (or
@@ -422,16 +420,16 @@
pipeline.</p><p>By having a field widget associated with a datatype, you can be sure that,
after successful validation of the widget, retrieving the value of the widget
will give you an object of the correct type.</p><p>The available datatypes and their respective convertors are documented in a
-<a href="487_1_1.html">separate document</a>.</p><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Selection lists</h2><p>A field widget can furthermore be associated with a selection list. This
+<a href="487_1_1.html">separate document</a>.</p><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Selection lists</h2><p>A field widget can furthermore be associated with a selection list. This
makes that the field widget could be rendered either as a textbox or a list,
depending on whether its datatype has a selection list. The selection list is
related with the datatype: the values in the selection list should be of the
same type as the datatype.</p><p>Selection list data can be specified directly in the form definition (for
short, unchanging lists), retrieved from external sources (i.e. a Cocoon
pipeline), or pulled from an oject structure. Full details on selection lists
-are also in a <a href="753_1_1.html">separate document</a>.</p><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Conclusion</h2><p>If we wouldn't make these datatype and selection list associations, we would
+are also in a <a href="753_1_1.html">separate document</a>.</p><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Conclusion</h2><p>If we wouldn't make these datatype and selection list associations, we would
need to create specific widgets for each possible combination: StringField,
-LongField, DateField, StringSelectionList, LongSelectionList, ...</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Definition</h1><p>Configuration example:</p><pre><fd:field id="..." required="true|false" state="..."
+LongField, DateField, StringSelectionList, LongSelectionList, ...</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Definition</h1><p>Configuration example:</p><pre><fd:field id="..." required="true|false" state="..."
whitespace="trim|trim-start|trim-end|preserve">
<fd:label>...</fd:label>
<fd:hint>...</fd:hint>
@@ -497,12 +495,12 @@
implemented for Java event listeners is
<tt>org.apache.cocoon.forms.event.CreateListener</tt>.</p><p>The <strong>fd:attributes</strong> element specifies arbitrary name/value
pairs to be associated with the widget. These attributes have no special meaning
-to CForms itself, but can be retrieved via the API.</p><div class="note"><div><strong>Note: </strong><strong xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Note:</strong> Events used in
+to CForms itself, but can be retrieved via the API.</p><div class="note"><div><strong>Note: </strong><strong xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Note:</strong> Events used in
<fd:on-value-changed> require that the form instance is stored serverside
(because otherwise CForms doesn't know what the previous values of the fields
were). This is automatically the case when you use flowscript. If you don't use
-flowscript you could store the form instance in e.g. the session.</div></div><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Template</h1><p>A field widget is inserted in a template using the ft:widget tag:</p><pre><ft:widget id="..."/>
-</pre><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Styling (default HTML XSL)</h1><p>If the field widget does not have a selection list, it will be rendered as
+flowscript you could store the form instance in e.g. the session.</div></div><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Template</h1><p>A field widget is inserted in a template using the ft:widget tag:</p><pre><ft:widget id="..."/>
+</pre><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Styling (default HTML XSL)</h1><p>If the field widget does not have a selection list, it will be rendered as
simple input box. If the field widget does have a selection list, it will by
default be rendered as a dropdown list. If the datatype of the field is date, a
date-picker icon will be put next to the field.</p><div class="note"><div><strong>Note: </strong>The following applies only if you use the default (i.e.
Modified: cocoon/site/site/2.2/blocks/forms/1.0/482_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/482_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/482_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/482_1_1.html Wed Jul 16 03:10:42 2008
@@ -394,8 +394,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -403,7 +401,7 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Booleanfield widget</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Concept</h1><p>An fd:booleanfield is a field that has a value of true or false. Usually is
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Booleanfield widget</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Concept</h1><p>An fd:booleanfield is a field that has a value of true or false. Usually is
rendered as a checkbox.</p><p>It is different from a <a href="481_1_1.html">field widget</a> with a
<tt>boolean</tt> datatype because an HTML checkbox submits no request parameter
if the checkbox is unchecked. If you would render it instead as a listbox with
@@ -411,7 +409,7 @@
styling preference might change over time, it is however better to use
consistently the fd:booleanfield widget.</p><p>A booleanfield cannot be marked as "required", because it is always required.
It is either true or false. If you want tripples (true/false/none), use a normal
-field widget with a selection list.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Definition</h1><pre><fd:booleanfield id="..." state="...">
+field widget with a selection list.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Definition</h1><pre><fd:booleanfield id="..." state="...">
<fd:true-param-value>...</fd:true-param-value>
<fd:initial-value>...</fd:initial-value>
<fd:label>...</fd:label>
@@ -431,8 +429,8 @@
</fd:attributes>
</fd:booleanfield></pre><p>See <a href="481_1_1.html">field widget</a> for a description of the
configuration options.</p><p>The optional element <strong>fd:true-param-value</strong> specifies the
-parameter value that indicates true. By default this is "true".</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Template</h1><p>A booleanfield widget is inserted in a template using the ft:widget tag:</p><pre><ft:widget id="..."/>
-</pre><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Styling (default HTML XSL)</h1><p>A booleanfield is rendered as a checkbox. To make the checkbox user-friendly,
+parameter value that indicates true. By default this is "true".</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Template</h1><p>A booleanfield widget is inserted in a template using the ft:widget tag:</p><pre><ft:widget id="..."/>
+</pre><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Styling (default HTML XSL)</h1><p>A booleanfield is rendered as a checkbox. To make the checkbox user-friendly,
make sure the label of the checkbox is associated with the checkbox, so that the
user can also click the label to (de)select the checkbox:</p><pre><ft:widget id="someId"/> <label for="someId-input"><ft:widget-label id="someId"/></label>
</pre><p>This is automatically taken care of when using the columns group layout as
Modified: cocoon/site/site/2.2/blocks/forms/1.0/483_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/483_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/483_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/483_1_1.html Wed Jul 16 03:10:42 2008
@@ -394,8 +394,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -403,13 +401,13 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Upload widget</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Concept</h1><p>This widget allows to upload files by using Cocoon's file upload features.
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Upload widget</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Concept</h1><p>This widget allows to upload files by using Cocoon's file upload features.
For this reason, this widget won't function properly unless
<tt>enable-uploads</tt> is set to <tt>true</tt> in <tt>WEB-INF/web.xml</tt>.</p><p>Also, don't forget to put the <strong>enctype</strong> attribute as
<tt>multipart/form-data</tt> in the <strong>ft:form-template</strong> element,
inside the template file.</p><p>To retrieve the uploaded data, simply use the <tt>getValue</tt> method of the
widget, which will in this case return an object of the following type:</p><pre>org.apache.cocoon.servlet.multipart.Part</pre><p>The uploaded data will be automatically cleaned up when the upload widget
-instance object is finialized by the JVM.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Definition</h1><pre><fd:upload id="..." mime-types="text/plain, text/xml" required="true|false" state="...">
+instance object is finialized by the JVM.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Definition</h1><pre><fd:upload id="..." mime-types="text/plain, text/xml" required="true|false" state="...">
<fd:label>...</fd:label>
<fd:help>...</fd:help>
<fd:hint>...</fd:hint>
@@ -424,8 +422,8 @@
</fd:attributes>
</fd:upload></pre><p>The optional <tt>mime-types</tt> attribute allows to specify a
comma-separated list of mime-types which are accepted. The widget will be
-invalid if the uploaded type isn't of one of the specified content types.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Template</h1><p>An upload widget is inserted in a template using the ft:widget tag:</p><pre><ft:widget id="..."/>
-</pre><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Styling (default HTML XSL)</h1><p>The upload widget is rendered as a default HTML upload control.</p></div><div class="editUrl"><div><em>Errors and Improvements?</em> If you see any errors or potential improvements in this document please help
+invalid if the uploaded type isn't of one of the specified content types.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Template</h1><p>An upload widget is inserted in a template using the ft:widget tag:</p><pre><ft:widget id="..."/>
+</pre><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Styling (default HTML XSL)</h1><p>The upload widget is rendered as a default HTML upload control.</p></div><div class="editUrl"><div><em>Errors and Improvements?</em> If you see any errors or potential improvements in this document please help
us: <a href="http://cocoon.zones.apache.org/daisy/cdocs/483?branch=1&language=1">View, Edit or comment</a> on the latest development version (registration required).
</div></div></div>
</div>
Modified: cocoon/site/site/2.2/blocks/forms/1.0/484_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/484_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/484_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/484_1_1.html Wed Jul 16 03:10:42 2008
@@ -334,8 +334,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -343,7 +341,7 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Cocoon Forms: Validation</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Concept</h1><p>For each widget you can define a number of widget validators. A widget
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Cocoon Forms: Validation</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Concept</h1><p>For each widget you can define a number of widget validators. A widget
validator can perform some checks on the widget and if these fail, set a
validation error on the widget.</p><p>Implementation-wise, a widget validator is an object implementing the
<tt>WidgetValidator</tt> interface
@@ -368,7 +366,7 @@
the fields in the different rows of the repeater, and set validation errors on
these fields (instead of on the repeater itself).</p><p>CForms supplies a number of default widget validators, mostly for performing
checks on the value of field widgets. Additionally you can write your own ones
-in Java or in Javascript.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Table of widgets supporting ValidationErrorAware</h1><p>These are the widgets on which you can call <tt>setValidationError</tt> (and
+in Java or in Javascript.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Table of widgets supporting ValidationErrorAware</h1><p>These are the widgets on which you can call <tt>setValidationError</tt> (and
<tt>getValidationError</tt>). This is relevant if you are writing your own
validation logic.</p><table class="bodyTable">
<tbody>
@@ -453,7 +451,7 @@
<td></td>
</tr>
</tbody>
-</table><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Reference</h1><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">General remarks</h2><p>For most widget validators, the failmessage (i.e. the message displayed to
+</table><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Reference</h1><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">General remarks</h2><p>For most widget validators, the failmessage (i.e. the message displayed to
the user in case the validation failed) can be overridden by specifying a child
<strong>fd:failmessage</strong> element inside the validator element. The
failmessage can contain mixed content. Example:</p><pre><fd:field id="yourmail">
@@ -545,15 +543,15 @@
</td>
</tr>
</tbody>
-</table><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">fd:assert</h2><p>Evaluates the expression specified in the "test" attribute. This expression
+</table><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">fd:assert</h2><p>Evaluates the expression specified in the "test" attribute. This expression
should have a boolean result, it should evaluate to either true or false.
Example: Suppose there are 2 fields widgets <tt>password</tt> and
<tt>confirmPassword</tt>. We can use assert inside <tt>confirmPassword</tt> to
check if is equals to <tt>password</tt> widget:</p><pre><fd:assert test="password = confirmPassword">
<fd:failmessage>The two passwords are not equal.</fd:failmessage>
-</fd:assert></pre><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">fd:email</h2><p>Checks that a value is a valid email address. Example:</p><pre><fd:email/></pre><p>Currently this checks the email does not contain any spaces, contains exactly
+</fd:assert></pre><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">fd:email</h2><p>Checks that a value is a valid email address. Example:</p><pre><fd:email/></pre><p>Currently this checks the email does not contain any spaces, contains exactly
one <tt>@</tt> symbol with at least one character before it and at least one dot
-after it.</p><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">fd:length</h2><p>Checks the length of strings. This validator can take 3 attributes: min, max
+after it.</p><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">fd:length</h2><p>Checks the length of strings. This validator can take 3 attributes: min, max
and exact. You can use either of these three separately or min and max together.
The values of these attributes are expressions. Example:</p><pre><fd:length min="2" max="4"/>
@@ -561,30 +559,30 @@
<fd:length exact="2*2">
<fd:failmessage>Must be 4 characters long!</fd:failmessage>
-</fd:length></pre><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">fd:mod10</h2><p>Uses the "mod10" algorithm used to check the validity of credit card numbers
+</fd:length></pre><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">fd:mod10</h2><p>Uses the "mod10" algorithm used to check the validity of credit card numbers
such as VISA. This validator does not require any additional attributes.
Example:</p><pre><fd:mod10>
<fd:failmessage>Invalid credit card number.</fd:failmessage>
-</fd:mod10></pre><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">fd:range</h2><p>Checks the numeric range. This validator can take 3 attributes: min, max and
+</fd:mod10></pre><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">fd:range</h2><p>Checks the numeric range. This validator can take 3 attributes: min, max and
exact. You can use either of these three separately or min and max together. The
values of these attributes are expressions. Example:</p><pre><fd:range min="2" max="4"/>
Another example:
-<fd:range exact="2*2"/></pre><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">fd:regexp</h2><p>Checks that a string matches a regular expression. It requires a "pattern"
+<fd:range exact="2*2"/></pre><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">fd:regexp</h2><p>Checks that a string matches a regular expression. It requires a "pattern"
attribute specifying the regexp. The regular expression library used is Jakarta
ORO, see
<a href="http://jakarta.apache.org/oro/api/org/apache/oro/text/regex/package-summary.html">here</a>
for some information. Example:</p><pre><fd:regexp pattern="[a-z]{3,5}">
<fd:failmessage>Invalid code!</fd:failmessage>
-</fd:regexp></pre><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">fd:value-count</h2><p>Checks the number of items selected in a multivaluefield. Again works with
+</fd:regexp></pre><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">fd:value-count</h2><p>Checks the number of items selected in a multivaluefield. Again works with
min, max and exact attributes. Example:</p><pre><fd:value-count min="2" max="4"/>
Another example:
-<fd:value-count exact="2"/></pre><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">fd:javascript</h2><p>Allows to write a validator using Javascript, embedded directly in the form
+<fd:value-count exact="2"/></pre><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">fd:javascript</h2><p>Allows to write a validator using Javascript, embedded directly in the form
definition. The widget in question is available in the Javascript snippet as a
-variable called <tt>widget</tt>.</p><p>See the samples of Cocoon for an example.</p><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">fd:java</h2><p>Allows to write a validator as a java class. The class must implement the the
+variable called <tt>widget</tt>.</p><p>See the samples of Cocoon for an example.</p><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">fd:java</h2><p>Allows to write a validator as a java class. The class must implement the the
<tt>WidgetValidator</tt> interface
(<a href="http://cocoon.apache.org/2.1/apidocs/org/apache/cocoon/forms/validation/WidgetValidator.html">javadoc</a>)
and be deployed in the cocoon webapplication.</p><pre><fd:java class="com.mycompany.validators.MyCustomValidator"/>
Modified: cocoon/site/site/2.2/blocks/forms/1.0/485_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/485_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/485_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/485_1_1.html Wed Jul 16 03:10:42 2008
@@ -338,8 +338,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -347,7 +345,7 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">XSLT</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Intro</h1><p>This page contains information on the default XSLT's provided by CForms, and
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">XSLT</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Intro</h1><p>This page contains information on the default XSLT's provided by CForms, and
the fi:styling directives they support.</p><p>As specified in <a href="755_1_1.html">templating mechanism</a> (be sure to read
about it), the form template file is transformed in a form instance xml file.
This file contains all the data needed to properly display a form. An XSLT must
@@ -377,12 +375,12 @@
stylesheet for your own project, have it include the library XSLTs, and
customize what you need by writing templates in this XSLT by giving templates
higher priority than those in the library ones.From the sitemap you only need to reference only your custom XSLT, for
-example as follows:<pre><map:transform src="context://forms/resources/myproject-forms-styling.xsl"/></pre><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">fi:styling options</h1>The fi:styling elements are specified in the template, and offer a way to
+example as follows:<pre><map:transform src="context://forms/resources/myproject-forms-styling.xsl"/></pre><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">fi:styling options</h1>The fi:styling elements are specified in the template, and offer a way to
customize the way the library XSLTs render widgets. For example :<pre><ft:widget id="preferredBeer">
<fi:styling list-type="radio"/>
</ft:widget>
</pre>The fi:styling options for the different widgets are documented in the
-respective sections about those widgets.<h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">High-level styling with fi:group</h1>It's quite common to want to layout the form. For example, have part of the
+respective sections about those widgets.<h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">High-level styling with fi:group</h1>It's quite common to want to layout the form. For example, have part of the
form displayed in a table with two columns, one with labels the other one with
actual fields, while in another part have a single colum with labels followed by
fields, and in another part some tabs to group together fields.<p>We could do this simply writing HTML in the template file, but this is
@@ -429,7 +427,7 @@
attribute in its <tt>fi:styling</tt> element to specify the layout we want. This
difference is because the "layout based" groups are quite lightweight, while the
"type based" groups are more sophisticated and usually contains other groups.
-</p><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Layout groups</h2><p><tt><fi:group layout="column"></tt> will format its items in a single
+</p><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Layout groups</h2><p><tt><fi:group layout="column"></tt> will format its items in a single
column. One row will contain the label, the following row the input field.</p><p><tt><fi:group layout="columns"></tt> will format its items in two
columns. For each item a row is created, the first column will contain the
label, and the second column the input field.</p><p><tt><fi:group layout="row"></tt> will format its items in a single row.
@@ -452,7 +450,7 @@
<li>every other <tt>fi:group</tt> nested inside a <tt>fi:group</tt> with layout
<tt>columns</tt> will span on both columns</li>
</ul>Also layout <tt>fi:group</tt> can contain other <tt>fi:group</tt> between
-their items, and can be used to create quite complex layouts.<h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Type groups</h2>There are currently two "type" groups : <tt>tabs</tt> and <tt>choice.</tt>
+their items, and can be used to create quite complex layouts.<h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Type groups</h2>There are currently two "type" groups : <tt>tabs</tt> and <tt>choice.</tt>
The tabs group will display some tabs, every tab is (usually) a fi:group. For
example :<pre><fi:group>
<fi:styling type="tabs"/>
@@ -508,7 +506,7 @@
</fi:group>
</fi:items>
</fi:group></pre><p>Have a look at <tt>forms-page-styling.xsl</tt> , all <tt>fi:groups</tt> are
-formatted there.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Miscellaneous</h1><h2 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">fi:validation-errors</h2><p>The <tt>fi:validation-errors</tt> tag is used to display all validation
+formatted there.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Miscellaneous</h1><h2 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">fi:validation-errors</h2><p>The <tt>fi:validation-errors</tt> tag is used to display all validation
errors of all widgets in a form at one location, i.e. a the top of the form.</p><p>The fi:validation-errors tag must be a child of a ft:form-template element.
</p><p>You can customise a message to be shown before and after the errors by adding
a child header and/or footer element:</p><pre><fi:validation-errors>
Modified: cocoon/site/site/2.2/blocks/forms/1.0/486_1_1.html
URL: http://svn.apache.org/viewvc/cocoon/site/site/2.2/blocks/forms/1.0/486_1_1.html?rev=677225&r1=677224&r2=677225&view=diff
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/486_1_1.html (original)
+++ cocoon/site/site/2.2/blocks/forms/1.0/486_1_1.html Wed Jul 16 03:10:42 2008
@@ -394,8 +394,6 @@
-
-
<li class='menuCollapse'>
<a href="project-reports.html">Project Reports</a>
@@ -403,7 +401,7 @@
</ul>
</li>
</ul>
- <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Aggregatefield widget</h1><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Concept</h1><p>An aggregated field allows to represent one value as multiple input fields,
+ <div id="contentBody"><div id="bodyText"><h1 class="docTitle">Aggregatefield widget</h1><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Concept</h1><p>An aggregated field allows to represent one value as multiple input fields,
or several values as one field. Hence this widget is a field and a container
widget simultaneously.</p><p>Upon submit, it first attempts to read own value from the request, and splits
over nested field widgets using a regular expression. If split fails, this will
@@ -415,7 +413,7 @@
(e.g. check its total length).</p><p>This field and nested fields can be of any supported type, as long as combine
expression gives result of the correct type, and split regular expression can
split string representation into parts which can be converted to the values of
-nested fields.</p><h1 xmlns:p="http://outerx.org/daisy/1.0#publisher" xmlns:ns="http://outerx.org/daisy/1.0">Definition</h1><pre><fd:aggregatefield id="..." state="...">
+nested fields.</p><h1 xmlns:ns="http://outerx.org/daisy/1.0" xmlns:p="http://outerx.org/daisy/1.0#publisher">Definition</h1><pre><fd:aggregatefield id="..." state="...">
<fd:widgets>
<fd:field .../>
[... more fd:field elements ...]