You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2007/09/27 21:57:38 UTC

svn commit: r580139 [9/28] - in /cocoon/site/site/2.2: ./ blocks/ blocks/ajax/ blocks/ajax/1.0/ blocks/ajax/1.0/apidocs/ blocks/ajax/1.0/css/ blocks/ajax/1.0/images/ blocks/ajax/1.0/images/logos/ blocks/css/ blocks/forms/ blocks/forms/1.0/ blocks/forms...

Added: 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=580139&view=auto
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/479_1_1.html (added)
+++ cocoon/site/site/2.2/blocks/forms/1.0/479_1_1.html Thu Sep 27 12:56:05 2007
@@ -0,0 +1,581 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+
+
+
+
+
+
+
+<html>
+  <head>
+    <title>            Cocoon Forms
+      </title>
+    <style type="text/css" media="all">
+      @import url("./css/maven-base.css");
+      @import url("./css/maven-theme.css");
+      @import url("./css/site.css");
+    </style>
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+          <meta name="author" content="The Cocoon Community" />
+        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+  </head>
+  <body>
+    <div id="breadtrail">
+       <p><a href="http://www.apache.org">Apache</a> &raquo; <a href="../../../../">Cocoon</a> &raquo;</p>
+    </div>
+    <div id="top">
+      <div id="header">
+          <div class="projectlogo">
+             <a href="../../../../"><img class="logoImage"
+               src="images/cocoon_logo.jpg"
+                alt="Apache Cocoon" border="0" /></a>
+          </div>
+          <div class="grouplogo">
+             <p class="grouptitle"><a href="../../../../">The Apache Cocoon Project</a><img
+               src="images/apache-logo.jpg" alt="Cocoon Project Logo" /></p>
+                            <form class="searchbox" action="http://www.google.com/search" method="get">
+                 <input value="cocoon.apache.org" name="sitesearch" type="hidden" />
+                 <input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google" />&nbsp;
+                 <input class="searchboxsubmit" name="Search" value="Search" type="submit" />
+               </form>
+                      </div>
+         </div>
+         <div id="projectBar">
+           <p class="cocoonHome"><a href="../../../../"><img
+           src="images/pmc-home.gif"
+           alt="Back to Apache Cocoon homepage"
+           border="0" title="Back to Apache Cocoon homepage" /></a></p>
+           <h1 class="projectTitle"><a href="../../../../">              Cocoon Forms
+            1.0
+  </a></h1>
+                         <ul class="projectList">
+                <li><strong><a href="../../../../2.2/">Cocoon 2.2</a></em></strong></li>
+                <li><a href="../../../../2.2/core-modules/">Core <span class="pl-version-small">2.2</span></a></li>
+                <li><a href="../../../../2.2/blocks/">Blocks <span class="pl-version-small">2.2</span></a></li>
+                <li><a href="../../../../2.2/maven-plugins/">Maven Plugins <span class="pl-version-small">2.2</span></a></li>
+                <li><strong><a href="../../../../subprojects/">Subprojects</a></strong></li>
+              </ul>
+                     </div>
+         <div class="projectBarClear"><!-- --></div>
+      </div>
+<!-- end of top -->
+
+    <div id="content">
+         <ul id="menu">
+        <li>
+              Forms
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="489_1_1.html">Basics</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="477_1_1.html">Widgets</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+            
+            
+      
+            
+      
+            
+      
+              
+            <li class='menuExpand'>
+              <a href="484_1_1.html">Widget concepts</a>
+                <ul>
+                  
+    <li >
+              <a href="484_1_1.html">Validation</a>
+        </li>
+                  
+    <li >
+              <strong>Event Handling</strong>
+        </li>
+                  
+    <li >
+              <a href="487_1_1.html">Datatypes</a>
+        </li>
+                  
+    <li >
+              <a href="753_1_1.html">Selection lists</a>
+        </li>
+                  
+    <li >
+              <a href="733_1_1.html">Widget States</a>
+        </li>
+              </ul>
+        </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+                  
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="755_1_1.html">Form publishing</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="488_1_1.html">Binding</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="498_1_1.html">API</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="685_1_1.html">Form libraries</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="750_1_1.html">Ajax</a>
+              </li>
+              </ul>
+    </li>
+      <li>
+              Migration guide
+            <ul>
+                  
+    <li >
+              <a href="1351_1_1.html">Migration guide</a>
+        </li>
+              </ul>
+    </li>
+      <li>
+              Sitemap Components
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="904_1_1.html">Action</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="915_1_1.html">Generator</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="994_1_1.html">Transformer</a>
+              </li>
+              </ul>
+    </li>
+      <li>
+              Project Documentation
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="project-info.html">Project Information</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="project-reports.html">Project Reports</a>
+              </li>
+              </ul>
+    </li>
+      </ul>
+<!--
+                                     <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
+            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
+          </a>
+                   <div id="lastPublished">
+                    
+                   Last Published: 26/09/2007 05:18
+       </div>
+-->
+         <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
+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
+when rows are added, removed or cleared.</p><p>Handling events can be done in three ways:</p><ul>
+<li>by defining event listeners in the form definition (as child of wd:on-action
+for the action widget, or wd:on-value-changed for the field widget, ...).</li>
+<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 &quot;When are events processed?&quot;, 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>
+The reason this is done is because events might have been collected while the
+form was loaded with values by the binding framework.</li>
+<li>ProcessingPhaseListeners are informed that the <tt>LOAD_MODEL</tt> phase has
+ended.</li>
+<li>All widgets in the widget tree read their value from the request. If a
+widget decides it has to produce an event, it is added to a global (i.e.
+form-level) list (but not yet executed).</li>
+<li>Once all widgets had the opportunity to read their value from the request,
+the events are broadcasted to the event listeners. This assures that event
+listeners have access to the values of all widgets in the tree.</li>
+<li>ProcessingPhaseListeners are informed that the <tt>READ_FROM_REQUEST</tt>
+phase has ended.</li>
+<li>It is possible that processing ends now. This usually happens when an action
+widget has caused an event.</li>
+<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
+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
+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>&lt;fd:on-xxxx&gt;
+  &lt;javascript&gt;
+    ... some inline javascript code ...
+  &lt;/javascript&gt;
+  &lt;java class=&quot;...&quot;/&gt;
+&lt;/fd:on-xxxx&gt;</pre>You can specify as many <tt>&lt;javascript&gt;</tt> and/or
+<tt>&lt;java&gt;</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>
+<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
+provide.</li>
+<li><tt>viewData</tt>: any data that is normally passed from the flowlayer to
+the view (pipeline). Exact contents depends on which flowscript API version you
+use.</li>
+<li>if the form processing was started from a flowscript, then everything
+available from the scope of that flowscript, such as global variables, functions
+and the <tt>cocoon</tt> object (see also <a href="NO_LINK">Flow Object
+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
+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
+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
+object as argument. You can of course also remove the event listener afterwards
+(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
+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
+extending from the common WidgetEvent class.</p><p><img alt="forms_event_types" name="forms_event_types" height="192" width="520" 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
+
+org.apache.cocoon.forms.event.ActionListener
+org.apache.cocoon.forms.event.ActionEvent
+
+org.apache.cocoon.forms.event.ProcessingPhaseListener
+org.apache.cocoon.forms.event.ProcessingPhaseEvent
+
+org.apache.cocoon.forms.event.RepeaterListener
+org.apache.cocoon.forms.event.RepeaterEvent
+</pre><p>The table below gives an overview of what events are supported on what
+widgets.</p><table class="bodyTable">
+<tbody>
+<tr class="a">
+<th>
+<p>Widget</p>
+</th>
+<th>
+<p>Supports ValueChangedEvents</p>
+</th>
+<th>
+<p>Supports ActionEvents</p>
+</th>
+<th>
+<p>Supports RepeaterEvents</p>
+</th>
+</tr>
+<tr class="b">
+<td>
+<p>field</p>
+</td>
+<td><img alt="yes_mark" name="yes_mark" height="11" width="10" src="images/375_1_1.img"></img></td>
+<td></td>
+<td></td>
+</tr>
+<tr class="a">
+<td>
+<p>multivaluefield</p>
+</td>
+<td>
+<p><img alt="yes_mark" name="yes_mark" height="11" width="10" src="images/375_1_1.img"></img></p>
+</td>
+<td></td>
+<td></td>
+</tr>
+<tr class="b">
+<td>
+<p>booleanfield</p>
+</td>
+<td><img alt="yes_mark" name="yes_mark" height="11" width="10" src="images/375_1_1.img"></img></td>
+<td></td>
+<td></td>
+</tr>
+<tr class="a">
+<td>
+<p>repeater</p>
+</td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr class="b">
+<td>
+<p>output</p>
+</td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr class="a">
+<td>
+<p>submit</p>
+</td>
+<td></td>
+<td><img alt="yes_mark" name="yes_mark" height="11" width="10" src="images/375_1_1.img"></img></td>
+<td></td>
+</tr>
+<tr class="b">
+<td>
+<p>action</p>
+</td>
+<td></td>
+<td><img alt="yes_mark" name="yes_mark" height="11" width="10" src="images/375_1_1.img"></img></td>
+<td></td>
+</tr>
+<tr class="a">
+<td>
+<p>repeater-action</p>
+</td>
+<td></td>
+<td><img alt="yes_mark" name="yes_mark" height="11" width="10" src="images/375_1_1.img"></img></td>
+<td></td>
+</tr>
+<tr class="b">
+<td>
+<p>row-action</p>
+</td>
+<td></td>
+<td><img alt="yes_mark" name="yes_mark" height="11" width="10" src="images/375_1_1.img"></img></td>
+<td></td>
+</tr>
+<tr class="a">
+<td>
+<p>aggregatefield</p>
+</td>
+<td>
+<p>TODO</p>
+</td>
+<td></td>
+<td></td>
+</tr>
+<tr class="b">
+<td>
+<p>upload</p>
+</td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr class="a">
+<td>
+<p>messages</p>
+</td>
+<td></td>
+<td></td>
+<td></td>
+</tr>
+<tr class="b">
+<td>
+<p>repeater</p>
+</td>
+<td></td>
+<td></td>
+<td><img alt="yes_mark" name="yes_mark" height="11" width="10" src="images/375_1_1.img"></img></td>
+</tr>
+</tbody>
+</table></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/479?branch=1&language=1">View, Edit or comment</a> on the latest development version (registration required).
+      </div></div></div>
+    </div>
+    <!-- end of content -->
+    <div id="footer">
+      <p>&#169;  
+          1999-2007
+    
+          The Apache Software Foundation
+        <br/>
+    
+    Last Published: 26/09/2007 05:18
+</p>
+    </div>
+    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+    </script>
+    <script type="text/javascript">
+      _uacct = "UA-1740622-3";
+      urchinTracker();
+    </script>
+  </body>
+</html>

Added: 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=580139&view=auto
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/480_1_1.html (added)
+++ cocoon/site/site/2.2/blocks/forms/1.0/480_1_1.html Thu Sep 27 12:56:05 2007
@@ -0,0 +1,391 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+
+
+
+
+
+
+
+<html>
+  <head>
+    <title>            Cocoon Forms
+      </title>
+    <style type="text/css" media="all">
+      @import url("./css/maven-base.css");
+      @import url("./css/maven-theme.css");
+      @import url("./css/site.css");
+    </style>
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+          <meta name="author" content="The Cocoon Community" />
+        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+  </head>
+  <body>
+    <div id="breadtrail">
+       <p><a href="http://www.apache.org">Apache</a> &raquo; <a href="../../../../">Cocoon</a> &raquo;</p>
+    </div>
+    <div id="top">
+      <div id="header">
+          <div class="projectlogo">
+             <a href="../../../../"><img class="logoImage"
+               src="images/cocoon_logo.jpg"
+                alt="Apache Cocoon" border="0" /></a>
+          </div>
+          <div class="grouplogo">
+             <p class="grouptitle"><a href="../../../../">The Apache Cocoon Project</a><img
+               src="images/apache-logo.jpg" alt="Cocoon Project Logo" /></p>
+                            <form class="searchbox" action="http://www.google.com/search" method="get">
+                 <input value="cocoon.apache.org" name="sitesearch" type="hidden" />
+                 <input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google" />&nbsp;
+                 <input class="searchboxsubmit" name="Search" value="Search" type="submit" />
+               </form>
+                      </div>
+         </div>
+         <div id="projectBar">
+           <p class="cocoonHome"><a href="../../../../"><img
+           src="images/pmc-home.gif"
+           alt="Back to Apache Cocoon homepage"
+           border="0" title="Back to Apache Cocoon homepage" /></a></p>
+           <h1 class="projectTitle"><a href="../../../../">              Cocoon Forms
+            1.0
+  </a></h1>
+                         <ul class="projectList">
+                <li><strong><a href="../../../../2.2/">Cocoon 2.2</a></em></strong></li>
+                <li><a href="../../../../2.2/core-modules/">Core <span class="pl-version-small">2.2</span></a></li>
+                <li><a href="../../../../2.2/blocks/">Blocks <span class="pl-version-small">2.2</span></a></li>
+                <li><a href="../../../../2.2/maven-plugins/">Maven Plugins <span class="pl-version-small">2.2</span></a></li>
+                <li><strong><a href="../../../../subprojects/">Subprojects</a></strong></li>
+              </ul>
+                     </div>
+         <div class="projectBarClear"><!-- --></div>
+      </div>
+<!-- end of top -->
+
+    <div id="content">
+         <ul id="menu">
+        <li>
+              Forms
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="489_1_1.html">Basics</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="477_1_1.html">Widgets</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="484_1_1.html">Widget concepts</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+            
+            
+      
+                  
+      
+            
+      
+            
+      
+              
+            <li class='menuExpand'>
+              <a href="755_1_1.html">Form publishing</a>
+                <ul>
+                  
+  
+
+
+              
+            
+            
+      
+              
+            <li class='menuExpand'>
+              <a href="755_1_1.html">Templating</a>
+                <ul>
+                  
+    <li >
+              <strong>Template Generator</strong>
+        </li>
+                  
+    <li >
+              <a href="475_1_1.html">Template transformer</a>
+        </li>
+              </ul>
+        </li>
+                  
+    <li >
+              <a href="476_1_1.html">Generator</a>
+        </li>
+                  
+    <li >
+              <a href="485_1_1.html">XSLT</a>
+        </li>
+                  
+    <li >
+              <a href="1147_1_1.html">CSS</a>
+        </li>
+              </ul>
+        </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="488_1_1.html">Binding</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="498_1_1.html">API</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="685_1_1.html">Form libraries</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="750_1_1.html">Ajax</a>
+              </li>
+              </ul>
+    </li>
+      <li>
+              Migration guide
+            <ul>
+                  
+    <li >
+              <a href="1351_1_1.html">Migration guide</a>
+        </li>
+              </ul>
+    </li>
+      <li>
+              Sitemap Components
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="904_1_1.html">Action</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="915_1_1.html">Generator</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="994_1_1.html">Transformer</a>
+              </li>
+              </ul>
+    </li>
+      <li>
+              Project Documentation
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="project-info.html">Project Information</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="project-reports.html">Project Reports</a>
+              </li>
+              </ul>
+    </li>
+      </ul>
+<!--
+                                     <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
+            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
+          </a>
+                   <div id="lastPublished">
+                    
+                   Last Published: 26/09/2007 05:18
+       </div>
+-->
+         <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>
+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>&lt;jx:import uri=&quot;resource://org/apache/cocoon/forms/generation/jx-macros.xml&quot;/&gt;</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>
+    </div>
+    <!-- end of content -->
+    <div id="footer">
+      <p>&#169;  
+          1999-2007
+    
+          The Apache Software Foundation
+        <br/>
+    
+    Last Published: 26/09/2007 05:18
+</p>
+    </div>
+    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+    </script>
+    <script type="text/javascript">
+      _uacct = "UA-1740622-3";
+      urchinTracker();
+    </script>
+  </body>
+</html>

Added: 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=580139&view=auto
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/481_1_1.html (added)
+++ cocoon/site/site/2.2/blocks/forms/1.0/481_1_1.html Thu Sep 27 12:56:05 2007
@@ -0,0 +1,550 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+
+
+
+
+
+
+
+<html>
+  <head>
+    <title>            Cocoon Forms
+      </title>
+    <style type="text/css" media="all">
+      @import url("./css/maven-base.css");
+      @import url("./css/maven-theme.css");
+      @import url("./css/site.css");
+    </style>
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+          <meta name="author" content="The Cocoon Community" />
+        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+  </head>
+  <body>
+    <div id="breadtrail">
+       <p><a href="http://www.apache.org">Apache</a> &raquo; <a href="../../../../">Cocoon</a> &raquo;</p>
+    </div>
+    <div id="top">
+      <div id="header">
+          <div class="projectlogo">
+             <a href="../../../../"><img class="logoImage"
+               src="images/cocoon_logo.jpg"
+                alt="Apache Cocoon" border="0" /></a>
+          </div>
+          <div class="grouplogo">
+             <p class="grouptitle"><a href="../../../../">The Apache Cocoon Project</a><img
+               src="images/apache-logo.jpg" alt="Cocoon Project Logo" /></p>
+                            <form class="searchbox" action="http://www.google.com/search" method="get">
+                 <input value="cocoon.apache.org" name="sitesearch" type="hidden" />
+                 <input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google" />&nbsp;
+                 <input class="searchboxsubmit" name="Search" value="Search" type="submit" />
+               </form>
+                      </div>
+         </div>
+         <div id="projectBar">
+           <p class="cocoonHome"><a href="../../../../"><img
+           src="images/pmc-home.gif"
+           alt="Back to Apache Cocoon homepage"
+           border="0" title="Back to Apache Cocoon homepage" /></a></p>
+           <h1 class="projectTitle"><a href="../../../../">              Cocoon Forms
+            1.0
+  </a></h1>
+                         <ul class="projectList">
+                <li><strong><a href="../../../../2.2/">Cocoon 2.2</a></em></strong></li>
+                <li><a href="../../../../2.2/core-modules/">Core <span class="pl-version-small">2.2</span></a></li>
+                <li><a href="../../../../2.2/blocks/">Blocks <span class="pl-version-small">2.2</span></a></li>
+                <li><a href="../../../../2.2/maven-plugins/">Maven Plugins <span class="pl-version-small">2.2</span></a></li>
+                <li><strong><a href="../../../../subprojects/">Subprojects</a></strong></li>
+              </ul>
+                     </div>
+         <div class="projectBarClear"><!-- --></div>
+      </div>
+<!-- end of top -->
+
+    <div id="content">
+         <ul id="menu">
+        <li>
+              Forms
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="489_1_1.html">Basics</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+            
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+            <li class='menuExpand'>
+              <a href="477_1_1.html">Widgets</a>
+                <ul>
+                  
+    <li >
+              <a href="477_1_1.html">Action widget</a>
+        </li>
+                  
+    <li >
+              <a href="486_1_1.html">Aggregatefield widget</a>
+        </li>
+                  
+    <li >
+              <a href="482_1_1.html">Booleanfield widget</a>
+        </li>
+                  
+    <li >
+              <a href="1161_1_1.html">Calculated fields</a>
+        </li>
+                  
+    <li >
+              <a href="1294_1_1.html">Captcha Widget</a>
+        </li>
+                  
+    <li >
+              <a href="742_1_1.html">Class/New (not really widgets)</a>
+        </li>
+                  
+    <li >
+              <strong>Field widget</strong>
+        </li>
+                  
+    <li >
+              <a href="754_1_1.html">Form</a>
+        </li>
+                  
+    <li >
+              <a href="740_1_1.html">Group/Struct widget</a>
+        </li>
+                  
+    <li >
+              <a href="738_1_1.html">ImageMap widget</a>
+        </li>
+                  
+    <li >
+              <a href="497_1_1.html">Messages widget</a>
+        </li>
+                  
+    <li >
+              <a href="490_1_1.html">MultiValueField widget</a>
+        </li>
+                  
+    <li >
+              <a href="492_1_1.html">Output widget</a>
+        </li>
+                  
+    <li >
+              <a href="494_1_1.html">RepeaterAction widget</a>
+        </li>
+                  
+    <li >
+              <a href="496_1_1.html">Repeater widget</a>
+        </li>
+                  
+    <li >
+              <a href="495_1_1.html">RowAction widget</a>
+        </li>
+                  
+    <li >
+              <a href="493_1_1.html">Submit widget</a>
+        </li>
+                  
+    <li >
+              <a href="739_1_1.html">Tree widget</a>
+        </li>
+                  
+    <li >
+              <a href="741_1_1.html">Union widget</a>
+        </li>
+                  
+    <li >
+              <a href="483_1_1.html">Upload widget</a>
+        </li>
+              </ul>
+        </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="484_1_1.html">Widget concepts</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+                  
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="755_1_1.html">Form publishing</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="488_1_1.html">Binding</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="498_1_1.html">API</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="685_1_1.html">Form libraries</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="750_1_1.html">Ajax</a>
+              </li>
+              </ul>
+    </li>
+      <li>
+              Migration guide
+            <ul>
+                  
+    <li >
+              <a href="1351_1_1.html">Migration guide</a>
+        </li>
+              </ul>
+    </li>
+      <li>
+              Sitemap Components
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="904_1_1.html">Action</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="915_1_1.html">Generator</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="994_1_1.html">Transformer</a>
+              </li>
+              </ul>
+    </li>
+      <li>
+              Project Documentation
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="project-info.html">Project Information</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="project-reports.html">Project Reports</a>
+              </li>
+              </ul>
+    </li>
+      </ul>
+<!--
+                                     <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
+            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
+          </a>
+                   <div id="lastPublished">
+                    
+                   Last Published: 26/09/2007 05:18
+       </div>
+-->
+         <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
+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 alt="forms_field_datatype_relation" name="forms_field_datatype_relation" height="192" width="556" 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,
+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
+subclasses thereof).</p><p>Each datatype is associated with a <strong>convertor</strong>. The task of
+the convertor is to convert from string representation to object representation,
+and vice versa.</p><p>The string to object conversion usually happens when converting the value
+entered by the user to an object. This process can fail if the user entered an
+incorrect string, for example <tt>abc</tt> when a number is required. In this
+case an appropriate validation error will be set on the widget. String to object
+conversion also happens when parsing data in selection lists (if the selection
+list is retrieved as XML) and can also be used as part of the
+<a href="488_1_1.html">binding</a>.</p><p>The object to string conversion happens when the state of the widget is spit
+out as XML, this is mostly when injecting the widget XML in the publishing
+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
+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
+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>&lt;fd:field id=&quot;...&quot; required=&quot;true|false&quot; state=&quot;...&quot;
+          whitespace=&quot;trim|trim-start|trim-end|preserve&quot;&gt;
+  &lt;fd:label&gt;...&lt;/fd:label&gt;
+  &lt;fd:hint&gt;...&lt;/fd:hint&gt;
+  &lt;fd:help&gt;...&lt;/fd:help&gt;
+  &lt;fd:datatype base=&quot;...&quot;&gt;
+     [...]
+  &lt;/fd:datatype&gt;
+  &lt;fd:initial-value locale=&quot;...&quot;&gt;...&lt;/fd:initial-value&gt;
+  &lt;fd:selection-list .../&gt;
+  &lt;fd:suggestion-list .../&gt;
+  &lt;fd:validation&gt;
+     [...]
+  &lt;/fd:validation&gt;
+  &lt;fd:on-value-changed&gt;
+     [...]
+  &lt;/fd:on-value-changed&gt;
+  &lt;fd:on-create&gt;
+     [...]
+  &lt;/fd:on-create&gt;
+  &lt;fd:attributes&gt;
+    &lt;fd:attribute name=&quot;...&quot; value=&quot;...&quot;/&gt;    
+  &lt;/fd:attributes&gt;
+&lt;/fd:field&gt;</pre><p>The field element takes a required <strong>id</strong> attribute. This id
+should be unique among all widgets in the same container (i.e. inside the same
+fd:widgets element).</p><p>The <strong>required</strong> attribute is optional, by default it is false.
+It indicates whether this field is required. This is a static property of the
+widget. If you want the field to be &quot;conditionally required&quot;, then set this to
+false and use custom validation logic to check the requiredness of the field.
+</p><p>The <strong>state</strong> attribute is optional. See
+<a href="733_1_1.html">Widget States</a> for its purpose.</p><p>The <strong>whitespace</strong> attribute is optional. It controls how
+leading and trailing whitespace characters are handled when the widget parses
+the value submitted by the user. Accepted values are: &quot;trim&quot; (removes both
+leading and trailing whitespace), &quot;trim-start&quot; (removes leading whitespace
+only), &quot;trim-end&quot; (removes trailing whitespace only), and &quot;preserve&quot; (leaves
+both leading and trailing whitespace intact). If the whitespace attribute is not
+present, it defaults to &quot;trim&quot;.</p><p>The <strong>fd:label</strong> element contains the label for this widget.
+This element is optional. It can contain mixed content. For internationalised
+labels, use i18n-tags in combination with Cocoon's I18nTransformer.</p><p>The <strong>fd:hint</strong> element contains a hint for the form control of
+this widget. This element is optional. It can contain a hint about the input
+control. For internationalised labels, use i18n-tags in combination with
+Cocoon's I18nTransformer.</p><p>The <strong>fd:help</strong> element contains more help for the form control
+of this widget. This element is optional. It can contain text help about the
+input control. For internationalised labels, use i18n-tags in combination with
+Cocoon's I18nTransformer.</p><p>The <strong>fd:datatype</strong> element indicates the datatype for this
+field. This element is required. The base attribute specifies on which built-in
+type this datatype should be based. The contents of the fd:datatype element can
+contain further configuration information for the datatype. The possible
+datatypes and their configuration options are described
+<a href="487_1_1.html">over here</a>.</p><p>The <strong>fd:initial-value</strong> element specifies an initial value for
+the field. The specified string value is converted using the datatype's
+convertor. You can optionally define the locale to be used for this.</p><p>The <strong>fd:selection-list</strong> element is used to associate a
+selection list with this field. See <a href="487_1_1.html">Datatypes</a> for more
+details.</p><p>The <strong>fd:suggestion-list</strong> element is similar to the
+fd:selection-list element but serves for Ajax-based autocompletion. (Very new at
+the time of this writing -- sep/oct 2005)</p><p>The <strong>fd:validation</strong> element specifies widget validators. See
+<a href="484_1_1.html">Validation</a> for more details.</p><p>The <strong>fd:on-value-changed</strong> element specifies event handlers to
+be executed in case the value of this field changes. See also
+<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.ValueChangedListener</tt>.
+The WidgetEvent subclass is
+<tt>org.apache.cocoon.forms.event.ValueChangedEvent</tt>.</p><p>The <strong>fd:on-create</strong> element specifies event handlers to be
+executed upon creation of the widget <em>instance</em>. The interface to be
+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
+&lt;fd:on-value-changed&gt; 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>&lt;ft:widget id=&quot;...&quot;/&gt;
+</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
+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.
+provided) XSL stylesheets. It is entirely up to you if you want to redefine
+these XSL sheets with different styling tags. However, since the provided XSL
+sheets are very generic and flexible, think twice before you start redoing the
+work.</div></div><p>To render the input field as a textarea:</p><pre>&lt;ft:widget id=&quot;...&quot;&gt;
+  &lt;fi:styling type=&quot;textarea&quot;/&gt;
+&lt;/ft:widget&gt;
+</pre><p>To render the input field as a HTMLArea:</p><pre>&lt;ft:widget id=&quot;...&quot;&gt;
+  &lt;fi:styling type=&quot;htmlarea&quot;/&gt;
+&lt;/ft:widget&gt;</pre><p>To render the selection lists as a listbox:</p><pre>&lt;ft:widget id=&quot;...&quot;&gt;
+  &lt;fi:styling list-type=&quot;listbox&quot; list-size=&quot;5&quot;/&gt;
+&lt;/ft:widget&gt;
+</pre><p>To render the selection list as radio buttons:</p><pre>&lt;ft:widget id=&quot;...&quot;&gt;
+  &lt;fi:styling list-type=&quot;radio&quot;/&gt;
+&lt;/ft:widget&gt;
+</pre><p>To render the selection list as horizontal radio buttons:</p><pre>&lt;ft:widget id=&quot;...&quot;&gt;
+  &lt;fi:styling list-type=&quot;radio&quot; list-orientation=&quot;horizontal&quot;/&gt;
+&lt;/ft:widget&gt;</pre></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/481?branch=1&language=1">View, Edit or comment</a> on the latest development version (registration required).
+      </div></div></div>
+    </div>
+    <!-- end of content -->
+    <div id="footer">
+      <p>&#169;  
+          1999-2007
+    
+          The Apache Software Foundation
+        <br/>
+    
+    Last Published: 26/09/2007 05:18
+</p>
+    </div>
+    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+    </script>
+    <script type="text/javascript">
+      _uacct = "UA-1740622-3";
+      urchinTracker();
+    </script>
+  </body>
+</html>

Added: 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=580139&view=auto
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/482_1_1.html (added)
+++ cocoon/site/site/2.2/blocks/forms/1.0/482_1_1.html Thu Sep 27 12:56:05 2007
@@ -0,0 +1,464 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+
+
+
+
+
+
+
+<html>
+  <head>
+    <title>            Cocoon Forms
+      </title>
+    <style type="text/css" media="all">
+      @import url("./css/maven-base.css");
+      @import url("./css/maven-theme.css");
+      @import url("./css/site.css");
+    </style>
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+          <meta name="author" content="The Cocoon Community" />
+        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+  </head>
+  <body>
+    <div id="breadtrail">
+       <p><a href="http://www.apache.org">Apache</a> &raquo; <a href="../../../../">Cocoon</a> &raquo;</p>
+    </div>
+    <div id="top">
+      <div id="header">
+          <div class="projectlogo">
+             <a href="../../../../"><img class="logoImage"
+               src="images/cocoon_logo.jpg"
+                alt="Apache Cocoon" border="0" /></a>
+          </div>
+          <div class="grouplogo">
+             <p class="grouptitle"><a href="../../../../">The Apache Cocoon Project</a><img
+               src="images/apache-logo.jpg" alt="Cocoon Project Logo" /></p>
+                            <form class="searchbox" action="http://www.google.com/search" method="get">
+                 <input value="cocoon.apache.org" name="sitesearch" type="hidden" />
+                 <input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google" />&nbsp;
+                 <input class="searchboxsubmit" name="Search" value="Search" type="submit" />
+               </form>
+                      </div>
+         </div>
+         <div id="projectBar">
+           <p class="cocoonHome"><a href="../../../../"><img
+           src="images/pmc-home.gif"
+           alt="Back to Apache Cocoon homepage"
+           border="0" title="Back to Apache Cocoon homepage" /></a></p>
+           <h1 class="projectTitle"><a href="../../../../">              Cocoon Forms
+            1.0
+  </a></h1>
+                         <ul class="projectList">
+                <li><strong><a href="../../../../2.2/">Cocoon 2.2</a></em></strong></li>
+                <li><a href="../../../../2.2/core-modules/">Core <span class="pl-version-small">2.2</span></a></li>
+                <li><a href="../../../../2.2/blocks/">Blocks <span class="pl-version-small">2.2</span></a></li>
+                <li><a href="../../../../2.2/maven-plugins/">Maven Plugins <span class="pl-version-small">2.2</span></a></li>
+                <li><strong><a href="../../../../subprojects/">Subprojects</a></strong></li>
+              </ul>
+                     </div>
+         <div class="projectBarClear"><!-- --></div>
+      </div>
+<!-- end of top -->
+
+    <div id="content">
+         <ul id="menu">
+        <li>
+              Forms
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="489_1_1.html">Basics</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+            
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+            <li class='menuExpand'>
+              <a href="477_1_1.html">Widgets</a>
+                <ul>
+                  
+    <li >
+              <a href="477_1_1.html">Action widget</a>
+        </li>
+                  
+    <li >
+              <a href="486_1_1.html">Aggregatefield widget</a>
+        </li>
+                  
+    <li >
+              <strong>Booleanfield widget</strong>
+        </li>
+                  
+    <li >
+              <a href="1161_1_1.html">Calculated fields</a>
+        </li>
+                  
+    <li >
+              <a href="1294_1_1.html">Captcha Widget</a>
+        </li>
+                  
+    <li >
+              <a href="742_1_1.html">Class/New (not really widgets)</a>
+        </li>
+                  
+    <li >
+              <a href="481_1_1.html">Field widget</a>
+        </li>
+                  
+    <li >
+              <a href="754_1_1.html">Form</a>
+        </li>
+                  
+    <li >
+              <a href="740_1_1.html">Group/Struct widget</a>
+        </li>
+                  
+    <li >
+              <a href="738_1_1.html">ImageMap widget</a>
+        </li>
+                  
+    <li >
+              <a href="497_1_1.html">Messages widget</a>
+        </li>
+                  
+    <li >
+              <a href="490_1_1.html">MultiValueField widget</a>
+        </li>
+                  
+    <li >
+              <a href="492_1_1.html">Output widget</a>
+        </li>
+                  
+    <li >
+              <a href="494_1_1.html">RepeaterAction widget</a>
+        </li>
+                  
+    <li >
+              <a href="496_1_1.html">Repeater widget</a>
+        </li>
+                  
+    <li >
+              <a href="495_1_1.html">RowAction widget</a>
+        </li>
+                  
+    <li >
+              <a href="493_1_1.html">Submit widget</a>
+        </li>
+                  
+    <li >
+              <a href="739_1_1.html">Tree widget</a>
+        </li>
+                  
+    <li >
+              <a href="741_1_1.html">Union widget</a>
+        </li>
+                  
+    <li >
+              <a href="483_1_1.html">Upload widget</a>
+        </li>
+              </ul>
+        </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="484_1_1.html">Widget concepts</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+                  
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="755_1_1.html">Form publishing</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="488_1_1.html">Binding</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="498_1_1.html">API</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="685_1_1.html">Form libraries</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="750_1_1.html">Ajax</a>
+              </li>
+              </ul>
+    </li>
+      <li>
+              Migration guide
+            <ul>
+                  
+    <li >
+              <a href="1351_1_1.html">Migration guide</a>
+        </li>
+              </ul>
+    </li>
+      <li>
+              Sitemap Components
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="904_1_1.html">Action</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="915_1_1.html">Generator</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="994_1_1.html">Transformer</a>
+              </li>
+              </ul>
+    </li>
+      <li>
+              Project Documentation
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="project-info.html">Project Information</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="project-reports.html">Project Reports</a>
+              </li>
+              </ul>
+    </li>
+      </ul>
+<!--
+                                     <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
+            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
+          </a>
+                   <div id="lastPublished">
+                    
+                   Last Published: 26/09/2007 05:18
+       </div>
+-->
+         <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
+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
+true and false values, you could also use a regular field widget. Since the
+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 &quot;required&quot;, 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>&lt;fd:booleanfield id=&quot;...&quot; state=&quot;...&quot;&gt;
+  &lt;fd:true-param-value&gt;...&lt;/fd:true-param-value&gt;
+  &lt;fd:initial-value&gt;...&lt;/fd:initial-value&gt;
+  &lt;fd:label&gt;...&lt;/fd:label&gt;
+  &lt;fd:help&gt;...&lt;/fd:help&gt;
+  &lt;fd:hint&gt;...&lt;/fd:hint&gt;
+  &lt;fd:validation&gt;
+    [...]
+  &lt;/fd:validation&gt;
+  &lt;fd:on-value-changed&gt;
+     [...]
+  &lt;/fd:on-value-changed&gt;
+  &lt;fd:on-create&gt;
+     [...]
+  &lt;/fd:on-create&gt;
+  &lt;fd:attributes&gt;
+    &lt;fd:attribute name=&quot;...&quot; value=&quot;...&quot;/&gt;
+  &lt;/fd:attributes&gt;
+&lt;/fd:booleanfield&gt;</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 &quot;true&quot;.</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>&lt;ft:widget id=&quot;...&quot;/&gt;
+</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,
+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>&lt;ft:widget id=&quot;someId&quot;/&gt; &lt;label for=&quot;someId-input&quot;&gt;&lt;ft:widget-label id=&quot;someId&quot;/&gt;&lt;/label&gt;
+</pre><p>This is automatically taken care of when using the columns group layout as
+explained <a href="752_1_1.html">here</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/482?branch=1&language=1">View, Edit or comment</a> on the latest development version (registration required).
+      </div></div></div>
+    </div>
+    <!-- end of content -->
+    <div id="footer">
+      <p>&#169;  
+          1999-2007
+    
+          The Apache Software Foundation
+        <br/>
+    
+    Last Published: 26/09/2007 05:18
+</p>
+    </div>
+    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+    </script>
+    <script type="text/javascript">
+      _uacct = "UA-1740622-3";
+      urchinTracker();
+    </script>
+  </body>
+</html>

Added: 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=580139&view=auto
==============================================================================
--- cocoon/site/site/2.2/blocks/forms/1.0/483_1_1.html (added)
+++ cocoon/site/site/2.2/blocks/forms/1.0/483_1_1.html Thu Sep 27 12:56:05 2007
@@ -0,0 +1,453 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+
+
+
+
+
+
+
+
+<html>
+  <head>
+    <title>            Cocoon Forms
+      </title>
+    <style type="text/css" media="all">
+      @import url("./css/maven-base.css");
+      @import url("./css/maven-theme.css");
+      @import url("./css/site.css");
+    </style>
+    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
+          <meta name="author" content="The Cocoon Community" />
+        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+  </head>
+  <body>
+    <div id="breadtrail">
+       <p><a href="http://www.apache.org">Apache</a> &raquo; <a href="../../../../">Cocoon</a> &raquo;</p>
+    </div>
+    <div id="top">
+      <div id="header">
+          <div class="projectlogo">
+             <a href="../../../../"><img class="logoImage"
+               src="images/cocoon_logo.jpg"
+                alt="Apache Cocoon" border="0" /></a>
+          </div>
+          <div class="grouplogo">
+             <p class="grouptitle"><a href="../../../../">The Apache Cocoon Project</a><img
+               src="images/apache-logo.jpg" alt="Cocoon Project Logo" /></p>
+                            <form class="searchbox" action="http://www.google.com/search" method="get">
+                 <input value="cocoon.apache.org" name="sitesearch" type="hidden" />
+                 <input onFocus="getBlank (this, 'Search the site with google');" size="25" name="q" id="query" type="text" value="Search the site with google" />&nbsp;
+                 <input class="searchboxsubmit" name="Search" value="Search" type="submit" />
+               </form>
+                      </div>
+         </div>
+         <div id="projectBar">
+           <p class="cocoonHome"><a href="../../../../"><img
+           src="images/pmc-home.gif"
+           alt="Back to Apache Cocoon homepage"
+           border="0" title="Back to Apache Cocoon homepage" /></a></p>
+           <h1 class="projectTitle"><a href="../../../../">              Cocoon Forms
+            1.0
+  </a></h1>
+                         <ul class="projectList">
+                <li><strong><a href="../../../../2.2/">Cocoon 2.2</a></em></strong></li>
+                <li><a href="../../../../2.2/core-modules/">Core <span class="pl-version-small">2.2</span></a></li>
+                <li><a href="../../../../2.2/blocks/">Blocks <span class="pl-version-small">2.2</span></a></li>
+                <li><a href="../../../../2.2/maven-plugins/">Maven Plugins <span class="pl-version-small">2.2</span></a></li>
+                <li><strong><a href="../../../../subprojects/">Subprojects</a></strong></li>
+              </ul>
+                     </div>
+         <div class="projectBarClear"><!-- --></div>
+      </div>
+<!-- end of top -->
+
+    <div id="content">
+         <ul id="menu">
+        <li>
+              Forms
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="489_1_1.html">Basics</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+      
+            
+            
+              
+            <li class='menuExpand'>
+              <a href="477_1_1.html">Widgets</a>
+                <ul>
+                  
+    <li >
+              <a href="477_1_1.html">Action widget</a>
+        </li>
+                  
+    <li >
+              <a href="486_1_1.html">Aggregatefield widget</a>
+        </li>
+                  
+    <li >
+              <a href="482_1_1.html">Booleanfield widget</a>
+        </li>
+                  
+    <li >
+              <a href="1161_1_1.html">Calculated fields</a>
+        </li>
+                  
+    <li >
+              <a href="1294_1_1.html">Captcha Widget</a>
+        </li>
+                  
+    <li >
+              <a href="742_1_1.html">Class/New (not really widgets)</a>
+        </li>
+                  
+    <li >
+              <a href="481_1_1.html">Field widget</a>
+        </li>
+                  
+    <li >
+              <a href="754_1_1.html">Form</a>
+        </li>
+                  
+    <li >
+              <a href="740_1_1.html">Group/Struct widget</a>
+        </li>
+                  
+    <li >
+              <a href="738_1_1.html">ImageMap widget</a>
+        </li>
+                  
+    <li >
+              <a href="497_1_1.html">Messages widget</a>
+        </li>
+                  
+    <li >
+              <a href="490_1_1.html">MultiValueField widget</a>
+        </li>
+                  
+    <li >
+              <a href="492_1_1.html">Output widget</a>
+        </li>
+                  
+    <li >
+              <a href="494_1_1.html">RepeaterAction widget</a>
+        </li>
+                  
+    <li >
+              <a href="496_1_1.html">Repeater widget</a>
+        </li>
+                  
+    <li >
+              <a href="495_1_1.html">RowAction widget</a>
+        </li>
+                  
+    <li >
+              <a href="493_1_1.html">Submit widget</a>
+        </li>
+                  
+    <li >
+              <a href="739_1_1.html">Tree widget</a>
+        </li>
+                  
+    <li >
+              <a href="741_1_1.html">Union widget</a>
+        </li>
+                  
+    <li >
+              <strong>Upload widget</strong>
+        </li>
+              </ul>
+        </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="484_1_1.html">Widget concepts</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+                  
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="755_1_1.html">Form publishing</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="488_1_1.html">Binding</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="498_1_1.html">API</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="685_1_1.html">Form libraries</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="750_1_1.html">Ajax</a>
+              </li>
+              </ul>
+    </li>
+      <li>
+              Migration guide
+            <ul>
+                  
+    <li >
+              <a href="1351_1_1.html">Migration guide</a>
+        </li>
+              </ul>
+    </li>
+      <li>
+              Sitemap Components
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="904_1_1.html">Action</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="915_1_1.html">Generator</a>
+              </li>
+                  
+  
+
+
+              
+      
+              
+        <li class='menuCollapse'>
+              <a href="994_1_1.html">Transformer</a>
+              </li>
+              </ul>
+    </li>
+      <li>
+              Project Documentation
+            <ul>
+                  
+  
+
+
+              
+      
+            
+      
+            
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="project-info.html">Project Information</a>
+              </li>
+                  
+  
+
+
+              
+      
+            
+      
+              
+        <li class='menuCollapse'>
+              <a href="project-reports.html">Project Reports</a>
+              </li>
+              </ul>
+    </li>
+      </ul>
+<!--
+                                     <a href="http://maven.apache.org/" title="Built by Maven" id="poweredBy">
+            <img alt="Built by Maven" src="./images/logos/maven-feather.png"></img>
+          </a>
+                   <div id="lastPublished">
+                    
+                   Last Published: 26/09/2007 05:18
+       </div>
+-->
+         <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.
+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>&lt;fd:upload id=&quot;...&quot; mime-types=&quot;text/plain, text/xml&quot; required=&quot;true|false&quot; state=&quot;...&quot;&gt;
+  &lt;fd:label&gt;...&lt;/fd:label&gt;
+  &lt;fd:help&gt;...&lt;/fd:help&gt;
+  &lt;fd:hint&gt;...&lt;/fd:hint&gt;
+  &lt;fd:validation&gt;
+    [...]
+  &lt;/fd:validation&gt;
+  &lt;fd:on-create&gt;
+    [...]
+  &lt;/fd:on-create&gt;
+  &lt;fd:attributes&gt;
+    &lt;fd:attribute name=&quot;...&quot; value=&quot;...&quot;/&gt;
+  &lt;/fd:attributes&gt;
+&lt;/fd:upload&gt;</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>&lt;ft:widget id=&quot;...&quot;/&gt;
+</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
+        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>
+    <!-- end of content -->
+    <div id="footer">
+      <p>&#169;  
+          1999-2007
+    
+          The Apache Software Foundation
+        <br/>
+    
+    Last Published: 26/09/2007 05:18
+</p>
+    </div>
+    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
+    </script>
+    <script type="text/javascript">
+      _uacct = "UA-1740622-3";
+      urchinTracker();
+    </script>
+  </body>
+</html>