<?xml version="1.0"?>
<!--
  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.
-->
<!--
  @version $Id: welcome.xml 675789 2008-07-10 22:36:41Z antonio $
-->
<samples name="CForms Block Samples" xmlns:xlink="http://www.w3.org/1999/xlink">
 <group name="Back">
  <sample name="Back" href="../..">to Cocoon Samples main page</sample>
  <sample name="Back" href="..">to Cocoon Blocks Samples main page</sample>
  <sample name="Cocoon Forms Documentation" href="http://cocoon.apache.org/2.1/userdocs/basics/index.html">
    Documentation is available on the Cocoon site.
  </sample>
  <note>
     Samples with the (Ajax) mark use the new transparent Ajax (Asynchronous Javascript And XML) framework
     to reduce client/server roundtrips and perform partial page updates.
  </note>
 </group>

 <group name="Basic Samples">
  <sample name="Various (Actions)" href="form1">This sample shows validation, event handling and various Cocoon Forms features.</sample>
  <sample name="Various (Flowscript)" href="form1.flow">The same sample as above using Flowscript.</sample>
  <sample name="Registration" href="registration">A simple registration form.</sample>
  <sample name="Car selector" href="carselector">(Ajax) Illustrates programmatically changing selectionlists.</sample>
  <!-- XHR Car selector removed: broken and superceded by Ajax version -->
<!--
  <sample name="XHR Car selector" href="xhr_carselector">Same sample, with the historical first use of XmlHttpRequest to reduce client/server roundtrips.</sample>
-->
  <sample name="Country selector" href="countryselector">Illustrates programmatically changing flow-jxpath selectionlists.</sample>
  <sample name="Upload" href="upload">Shows an upload widget used with Flowscript</sample>
  <sample name="Form Model GUI" href="form_model_gui.flow">Illustrates the use of Class, New, Struct, and Union.</sample>
  <sample name="HTMLArea" href="htmlarea">A simple form using the HTML editor widget.</sample>
  <sample name="Aggregate" href="aggregate/example">Aggregate field examples</sample>
  <sample name="Multipage wizard" href="do-multipage.flow">(Ajax) A multipage wizard, using widget states and actions to move between pages.</sample>
  <sample name="CAPTCHA validation" href="captcha/">CAPTCHA validation (requires <a href="/samples/blocks/batik/">Batik block</a>)</sample>
  <sample name="ImageMap" href="imagemap">A simple form using the Image Map widget</sample>
  <sample name="Calculated fields" href="do-calculatedfields.flow">Calculated fields : values are calculated automatically</sample>
 </group>

 <group name="Binding Samples">
  <note>
    Cocoon Forms has a binding framework which assists in copying Java-bean or XML (DOM) data into a form and back.
  </note>
  <sample name="XML Binding" href="form2xml.flow">A form for just editing an XML file.</sample>
  <sample name="Simple XML Binding" href="form2simpleXML.flow">A form for just editing XML data. Illustrates the XMLAdapter.</sample>
  <sample name="Bean Binding" href="form2bean.flow">A form for just editing a Java bean</sample>
  <note>
  	Step-by-step tutorial into individual binding features:
  </note>
  <sample name="1. Binding Simple Values" href="binding-01value.flow">fb:*/@direction and fb:value/*</sample>
  <sample name="2. Lenient Binding" href="binding-02lenient.flow">fb:*/@lenient</sample>
  <sample name="3. Aggregate Binding" href="binding-03aggregate.flow">fb:aggregate</sample>
  <sample name="4. Heavy Form" href="binding-04heavy-XML.flow">Form with lots of select boxes - test memory utilization, performance</sample>
  <sample name="5. Custom Bindings using Java or Javascript" href="binding-05custom.flow">fb:javascript and fb:custom</sample>
  <sample name="6. XML binding using namespaces" href="binding-06namespaced-XML.flow">Using XML binding with complex namespaced XML</sample>
  <!-- TODO: provide more tutorial samples like these:
  <sample name="6. MultiValue/Repeater Binding" href="binding-03multi.flow">fb:multi-value</sample>
  <sample name="7. Repeater Binding" href="binding-06repeater.flow">fb:repeater</sample>
  -->
 </group>

 <group name="Database access">
   <sample name="Easy SQL database access" href="sql/">
     SQL database query and update without any custom Java code, O/R mapping tool nor form binding.
     Uses flowscript, Map and List views on the forms and the database (using <a href="http://jdbi.codehaus.org">JDBI</a>).
   </sample>
 </group>

 <group name="Locales">
  <note>
    The samples below are the same as the basic flowscript sample but now use different locales.
    The locale can affect things like date and number formatting.
    You can try out other locales by supplying other values for the locale parameter in the URL.
  </note>
  <sample name="Flowscript" href="form1.flow?locale=fr-FR">France</sample>
  <sample name="Flowscript" href="form1.flow?locale=it-IT">Italy</sample>
  <sample name="Flowscript" href="form1.flow?locale=de-DE">Germany</sample>
  <sample name="Flowscript" href="form1.flow?locale=nl-BE">Belgium (dutch)</sample>
  <sample name="Flowscript" href="form1.flow?locale=el">Greek</sample>
  <sample name="Flowscript" href="form1.flow?locale=zh_CN">Chinese</sample>
 </group>

 <group name="Dynamic templates and recursive forms">
   <note>
     These samples were written for the GT2004 presentation about dynamic templates and recursive forms.
     They illustrate the use of "jx-macros.xml" to interpret form template elements within the generator,
     allowing the page layout to depend on the contents of the form, and the use of fd:union and fd:class
     widgets.
   </note>
   <sample name="Dynamic repeater template" href="do-dynaRepeater.flow">
     (Ajax) Shows a simple repeater, which isn't displayed at all if empty, and whose row action depend on
     the row number.
   </sample>
   <sample name="Datasource chooser" href="do-datasourceChooser.flow">
     (Ajax) A datasource chooser, illustrating the fd:union widget.
   </sample>
   <sample name="Task tree" href="do-taskTree.flow">
     (Ajax) A project work breakdown into a hierarchy of tasks, showing the use of the fd:class and fd:new
     widgets.
   </sample>
 </group>

 <group name="Tree widget samples">
   <sample name="File explorer" href="do-fileExplorer.flow">
     (Ajax) A file explorer built with two tree widgets.
   </sample>
   <sample name="Sample tree" href="do-sampleTree.flow">
     (Ajax) Scratchpad for random samples of the Tree widgets.
   </sample>
 </group>

 <group name="Advanced Ajax samples using Dojo widgets">
   <sample name="Drag and drop reordering, in-place editing" href="do-dojoRepeater.flow">
     (Ajax) The dynamic repeater sample revisited, featuring drag and drop reordering of rows,
     selecting rows by clicking anywhere in the row, and in-place editing of values.
   </sample>
   <sample name="Multi drag and drop reordering" href="do-dojoRepeaters.flow">
     (Ajax) The dynamic repeater sample revisited again, this time featuring drag and drop reordering of rows,
     with the ability to drag and drop from one repeater to another.
   </sample>
   <sample name="Cocoon suggests" href="do-suggest.flow">
     (Ajax) Very simple demo of the &lt;fd:suggestion-list&gt; feature.
   </sample>
   <sample name="Cocoon multivalue editor with suggestions" href="do-multivalueWithSuggestion.flow">
     (Ajax) Very simple demo of the &lt;fd:multivaluefield&gt; with suggestion support feature.
   </sample>
   <sample name="Cocoon double-list multivalue widget" href="do-multiValueDoubleList.flow">
     (Ajax) Demo of the double list &lt;fd:multivaluefield&gt;.
   </sample>
   <sample name="In place editing" href="do-inplace.flow">
     (Ajax) Various ways to use in place editing.
   </sample>
   <sample name="Upload Progress" href="uploadprogress">Shows upload widgets in a repeater with a progress bar</sample>
   <sample name="Other Ajax samples" href="../ajax/">
     (Ajax) Don't forget to look at the samples in the Ajax block!
   </sample>
   <sample name="States Switch on AJAX form" href="do-widgetstates.flow">
     (Ajax) Demostrate how it works the change of the widget state on a ajax request
   </sample>
 </group>

 <group name="Dynamic repeater template and event handling">
    <sample name="Dynamic repeater template" href="dreamteam">
      Create your Euro 2004 soccer dream team
    </sample>
 </group>

  <group name="Profiling information">
    <note>
      These samples concentrate on Cocoon Forms and JXTemplate in order to collect profiling information.
      In order to keep the samples as lean as possible, an action is used as controller.
    </note>
    <sample name="form1 - JXTemplate" href="form1-jx-macro">Render form using JXTemplate macros</sample>
    <sample name="form1 - FormsTransformer" href="form1-cforms-transformer">Render form using the FormsTransformer</sample>
  </group>

<!--
 <group name="Pre-alpha Cocoon Forms-based xml editor">
  <note>
    This demonstrates the potential to have a Cocoon Forms-based gui for creating Cocoon apps.
  </note>
  <sample name="Swan" href="swan/">Start page</sample>
 </group>
-->
  <group name="Forms Library samples">
    <note>
      This demonstrates the new library subsystem of Cocoon Forms. This is currently under development and is likely to change.
    </note>
    <sample name="Basic Sample" href="library/form1.flow">Basic Sample</sample>
    <sample name="Basic Sample 2" href="library/form2.flow">Basic Sample 2 (depends on the same library as above, see how it still changes after editing the library and reloading the first)</sample>
    <sample name="Hotel Booking Sample" href="library/hotel.flow">Hotel Booking Sample, elaborate use of libraries.</sample>
  </group>

  <group name="Repeater advanced features">
    <note>
      This demonstrates the Google Summer of Code 2006 improvements to the repeater.
    </note>
    <sample name="Pagination, sorting and filtering" href="pagination/paginated.do">Pagination, sorting and filtering.</sample>
  </group>

</samples>
