You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by br...@apache.org on 2003/07/28 18:00:28 UTC

cvs commit: cocoon-2.1/src/blocks/woody/samples/forms car-db.xml carselector_form.xml carselector_success.xsp carselector_template.xml

bruno       2003/07/28 09:00:28

  Modified:    src/blocks/woody/samples sitemap.xmap welcome.xml
  Added:       src/blocks/woody/samples/forms car-db.xml
                        carselector_form.xml carselector_success.xsp
                        carselector_template.xml
  Log:
  Added carselector sample, illustrating changing the selectionlist on widget-instance level.
  
  Revision  Changes    Path
  1.13      +71 -0     cocoon-2.1/src/blocks/woody/samples/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/woody/samples/sitemap.xmap,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- sitemap.xmap	25 Jul 2003 09:03:19 -0000	1.12
  +++ sitemap.xmap	28 Jul 2003 16:00:24 -0000	1.13
  @@ -276,6 +276,77 @@
          </map:transform>
          <map:serialize/>
        </map:match>
  +
  +
  +     <!--
  +         | Car selector sample.
  +         -->
  +
  +     <map:match pattern="cars">
  +       <map:generate src="forms/car-db.xml"/>
  +       <map:transform src="xsl/carfilter.xsl">
  +         <map:parameter name="type" value="makes"/>
  +       </map:transform>
  +       <map:serialize type="xml"/>
  +     </map:match>
  +
  +     <map:match pattern="cars/*">
  +       <map:generate src="forms/car-db.xml"/>
  +       <map:transform src="xsl/carfilter.xsl">
  +         <map:parameter name="type" value="models"/>
  +         <map:parameter name="make" value="{1}"/>
  +       </map:transform>
  +       <map:serialize type="xml"/>
  +     </map:match>
  +
  +     <map:match pattern="carselector">
  +       <map:select type="request-method">
  +         <map:when test="GET">
  +           <map:act type="woody-make-form">
  +             <map:parameter name="form-definition" value="forms/carselector_form.xml"/>
  +             <map:parameter name="attribute-name" value="carselectorform"/>
  +           </map:act>
  +         </map:when>
  +         <map:when test="POST">
  +           <map:act type="woody-handle-form-submit">
  +             <map:parameter name="form-definition" value="forms/carselector_form.xml"/>
  +             <map:parameter name="attribute-name" value="carselectorform"/>
  +             <map:parameter name="formhandler" value="org.apache.cocoon.woody.samples.CarSelectorHandler"/>
  +
  +             <map:generate type="serverpages" src="forms/carselector_success.xsp"/>
  +             <map:transform src="context://samples/common/style/xsl/html/simple-page2html.xsl">
  +               <map:parameter name="contextPath" value="{request:contextPath}"/>
  +               <map:parameter name="servletPath" value="{request:servletPath}"/>
  +               <map:parameter name="sitemapURI" value="{request:sitemapURI}"/>
  +               <map:parameter name="file" value="forms/registration_success.xsp"/>
  +               <map:parameter name="remove" value="{../0}"/>
  +             </map:transform>
  +             <map:serialize/>
  +           </map:act>
  +         </map:when>
  +         <map:otherwise>
  +           <!-- todo: do something here -->
  +         </map:otherwise>
  +       </map:select>
  +
  +       <map:generate src="forms/carselector_template.xml"/>
  +       <map:transform type="woody">
  +         <map:parameter name="attribute-name" value="carselectorform"/>
  +       </map:transform>
  +       <map:transform type="i18n">
  +         <map:parameter name="locale" value="en-US"/>
  +       </map:transform>
  +       <map:transform src="xsl/html/woody-default.xsl"/>
  +       <map:transform src="context://samples/common/style/xsl/html/simple-page2html.xsl">
  +         <map:parameter name="contextPath" value="{request:contextPath}"/>
  +         <map:parameter name="servletPath" value="{request:servletPath}"/>
  +         <map:parameter name="sitemapURI" value="{request:sitemapURI}"/>
  +         <map:parameter name="file" value="forms/registration_success.xsp"/>
  +         <map:parameter name="remove" value="{0}"/>
  +       </map:transform>
  +       <map:serialize/>
  +     </map:match>
  +
      </map:pipeline>
    </map:pipelines>
   
  
  
  
  1.6       +1 -0      cocoon-2.1/src/blocks/woody/samples/welcome.xml
  
  Index: welcome.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/blocks/woody/samples/welcome.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- welcome.xml	26 Jul 2003 14:05:40 -0000	1.5
  +++ welcome.xml	28 Jul 2003 16:00:24 -0000	1.6
  @@ -16,6 +16,7 @@
     <sample name="Various" href="form1">This sample shows validation, event handling and various Woody features.</sample>
     <sample name="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">Illustrates programmatically changing selectionlists.</sample>
    </group>
   
    <group name="Binding Samples">
  
  
  
  1.1                  cocoon-2.1/src/blocks/woody/samples/forms/car-db.xml
  
  Index: car-db.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <cars>
    <make name="Audi">
      <model name="A2"/>
      <model name="A3"/>
      <model name="A4"/>
      <model name="A6"/>
      <model name="A8"/>
      <model name="TT"/>
      <model name="Cabriolet"/>
    </make>
    <make name="Volkswagen">
      <model name="Golf"/>
      <model name="Passat"/>
      <model name="Bora"/>
    </make>
    <make name="Mercedes">
      <model name="CLK"/>
      <model name="SLK"/>
    </make>
    <make name="Renault">
      <model name="Twingo"/>
      <model name="Senic"/>
      <model name="Espace"/>
    </make>
  </cars>
  
  
  
  1.1                  cocoon-2.1/src/blocks/woody/samples/forms/carselector_form.xml
  
  Index: carselector_form.xml
  ===================================================================
  <?xml version="1.0" encoding="ISO-8859-1"?>
  <!-- form used to illustrate programmatic changing of listbox content. -->
  <wd:form
    xmlns:wd="http://apache.org/cocoon/woody/definition/1.0"
    xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
  
    <wd:field id="make" required="true">
      <wd:label>Make:</wd:label>
      <wd:datatype base="string"/>
      <wd:selection-list src="cocoon:/cars" dynamic="true"/>
    </wd:field>
  
    <wd:field id="model" required="true">
      <wd:label>Model:</wd:label>
      <wd:datatype base="string"/>
      <wd:selection-list>
        <wd:item value="">
          <wd:label>select a make first</wd:label>
        </wd:item>
      </wd:selection-list>
    </wd:field>
  
    <wd:button id="updatemodels" action-command="updatemodels">
      <wd:label>Update models</wd:label>
    </wd:button>
  
  </wd:form>
  
  
  
  1.1                  cocoon-2.1/src/blocks/woody/samples/forms/carselector_success.xsp
  
  Index: carselector_success.xsp
  ===================================================================
  <?xml version="1.0"?>
  <xsp:page language="java"
    xmlns:xsp="http://apache.org/xsp">
  
    <xsp:structure>
      <xsp:include>org.apache.cocoon.woody.formmodel.*</xsp:include>
    </xsp:structure>
  
    <page>
      <title>Car selector result</title>
      <content>
        <xsp:logic>
          // get reference to form and some of the widgets on it
          Form form = (Form)request.getAttribute("carselectorform");
          Field make = (Field)form.getWidget("make");
          Field model = (Field)form.getWidget("model");
        </xsp:logic>
  
        You selected: <xsp:expr>make.getValue()</xsp:expr> <xsp:expr>model.getValue()</xsp:expr>
      </content>
    </page>
  </xsp:page>
  
  
  
  1.1                  cocoon-2.1/src/blocks/woody/samples/forms/carselector_template.xml
  
  Index: carselector_template.xml
  ===================================================================
  <?xml version="1.0"?>
  <page xmlns:wt="http://apache.org/cocoon/woody/template/1.0">
    <title>Car selector</title>
    <para>This example illustrates how you can programmatically update the
      content of a selection list. See the code in the "CarSelectorHandler" class
      to see how this is done.</para>
    <para>After selecting a make, press the "Update models" button to see the
      corresponding models. It would be nice to do this with an automatic submit
      when the make list changes, but no effort has been done yet in Woody to
      standarize Javascript-integration, so I've left that out for now.</para>
    <content>
      <wt:form-template action="carselector" method="POST">
        <table border="1">
          <tr>
            <td valign="top"><wt:widget-label id="make"/></td>
            <td valign="top"><wt:widget id="make"/></td>
          </tr>
          <tr>
            <td colspan="2">
              <wt:widget id="updatemodels"/>
            </td>
          </tr>
          <tr>
            <td valign="top"><wt:widget-label id="model"/></td>
            <td valign="top"><wt:widget id="model"/></td>
          </tr>
        </table>
  
        <input type="submit"/>
      </wt:form-template>
    </content>
  </page>