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>