Author: tim Date: Thu Mar 24 12:27:00 2005 New Revision: 158944 URL: http://svn.apache.org/viewcvs?view=rev&rev=158944 Log: Sync with trunk.
Added: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertor.java - copied, changed from r158925, cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertor.java cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertorBuilder.java - copied, changed from r158925, cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertorBuilder.java cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/typeimpl/BeanType.java - copied, changed from r158925, cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/typeimpl/BeanType.java cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/typeimpl/BeanTypeBuilder.java - copied, changed from r158925, cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/typeimpl/BeanTypeBuilder.java cocoon/whiteboard/forms/samples/forms/binding/06namespaced-bind.xml - copied unchanged from r158925, cocoon/blocks/core/forms/trunk/samples/forms/binding/06namespaced-bind.xml cocoon/whiteboard/forms/samples/forms/binding/06namespaced-data.xml - copied unchanged from r158925, cocoon/blocks/core/forms/trunk/samples/forms/binding/06namespaced-data.xml cocoon/whiteboard/forms/samples/forms/binding/06namespaced-def.xml - copied unchanged from r158925, cocoon/blocks/core/forms/trunk/samples/forms/binding/06namespaced-def.xml cocoon/whiteboard/forms/samples/messages/FormsMessages_pl.xml - copied unchanged from r158925, cocoon/blocks/core/forms/trunk/samples/messages/FormsMessages_pl.xml cocoon/whiteboard/forms/samples/messages/OtherMessages_pl.xml - copied unchanged from r158925, cocoon/blocks/core/forms/trunk/samples/messages/OtherMessages_pl.xml Modified: cocoon/whiteboard/forms/WEB-INF/xconf/cocoon-forms.xconf cocoon/whiteboard/forms/java/org/apache/cocoon/forms/Constants.java cocoon/whiteboard/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java cocoon/whiteboard/forms/java/org/apache/cocoon/forms/binding/MultiValueJXPathBinding.java cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/EnumSelectionList.java cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/FlowJXPathSelectionList.java cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/FlowJXPathSelectionListBuilder.java cocoon/whiteboard/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java cocoon/whiteboard/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java cocoon/whiteboard/forms/samples/flow/binding_example.js cocoon/whiteboard/forms/samples/forms/form2_bind_bean.xml cocoon/whiteboard/forms/samples/forms/form2_jx.xml cocoon/whiteboard/forms/samples/forms/xhr_carselector_template.xml cocoon/whiteboard/forms/test/org/apache/cocoon/forms/datatype/FlowJXPathSelectionListTestCase.java Modified: cocoon/whiteboard/forms/WEB-INF/xconf/cocoon-forms.xconf URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/WEB-INF/xconf/cocoon-forms.xconf?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/WEB-INF/xconf/cocoon-forms.xconf (original) +++ cocoon/whiteboard/forms/WEB-INF/xconf/cocoon-forms.xconf Thu Mar 24 12:27:00 2005 @@ -111,6 +111,11 @@ <convertor name="enum" src="org.apache.cocoon.forms.datatype.convertor.EnumConvertorBuilder"/> </convertors> </datatype> + <datatype name="bean" src="org.apache.cocoon.forms.datatype.typeimpl.BeanTypeBuilder"> + <convertors default="bean" plain="bean"> + <convertor name="bean" src="org.apache.cocoon.forms.datatype.convertor.BeanConvertorBuilder"/> + </convertors> + </datatype> </datatypes> <validation-rules> <!-- old-style datatype validators (deprecated) --> Modified: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/Constants.java URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/java/org/apache/cocoon/forms/Constants.java?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/java/org/apache/cocoon/forms/Constants.java (original) +++ cocoon/whiteboard/forms/java/org/apache/cocoon/forms/Constants.java Thu Mar 24 12:27:00 2005 @@ -49,5 +49,8 @@ /** I18n catalogue containing the built-in messages. */ public static final String I18N_CATALOGUE = "forms"; + public static final String I18N_NS = "http://apache.org/cocoon/i18n/2.1"; + public static final String I18N_PREFIX = "i18n"; + public static final String I18N_PREFIX_COLON = "i18n:"; } Modified: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java (original) +++ cocoon/whiteboard/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java Thu Mar 24 12:27:00 2005 @@ -196,7 +196,7 @@ /** * Helper method that selects a child-widget with a given id from a parent. * - * @param parent co9ntaining the child-widget to return. + * @param parent containing the child-widget to return. * @param id of the childWidget to find, if this is <code>null</code> then the parent is returned. * @return the selected widget * Modified: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/binding/MultiValueJXPathBinding.java URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/java/org/apache/cocoon/forms/binding/MultiValueJXPathBinding.java?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/java/org/apache/cocoon/forms/binding/MultiValueJXPathBinding.java (original) +++ cocoon/whiteboard/forms/java/org/apache/cocoon/forms/binding/MultiValueJXPathBinding.java Thu Mar 24 12:27:00 2005 @@ -111,7 +111,7 @@ if( o == null ) { return false; } - if( Collection.class.isAssignableFrom( o.getClass() ) ) { + if( Collection.class.isAssignableFrom( o.getClass() ) ) { ((Collection)context.getValue(name)).add(null); } else if( o.getClass().isArray() ) { // not yet supported Modified: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/EnumSelectionList.java URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/EnumSelectionList.java?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/EnumSelectionList.java (original) +++ cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/EnumSelectionList.java Thu Mar 24 12:27:00 2005 @@ -56,8 +56,6 @@ * @version $Id$ */ public class EnumSelectionList implements SelectionList { - public static final String I18N_NS = "http://apache.org/cocoon/i18n/2.1"; - public static final String I18N_PREFIX_COLON = "i18n:"; public static final String TEXT_EL = "text"; private Datatype datatype; @@ -108,9 +106,9 @@ contentHandler.startElement(Constants.INSTANCE_NS, ITEM_EL, Constants.INSTANCE_PREFIX_COLON + ITEM_EL, itemAttrs); contentHandler.startElement(Constants.INSTANCE_NS, LABEL_EL, Constants.INSTANCE_PREFIX_COLON + LABEL_EL, XMLUtils.EMPTY_ATTRIBUTES); // TODO: make i18n element optional - contentHandler.startElement(I18N_NS, TEXT_EL, I18N_PREFIX_COLON + TEXT_EL, XMLUtils.EMPTY_ATTRIBUTES); + contentHandler.startElement(Constants.I18N_NS, TEXT_EL, Constants.I18N_PREFIX_COLON + TEXT_EL, XMLUtils.EMPTY_ATTRIBUTES); contentHandler.characters(stringValue.toCharArray(), 0, stringValue.length()); - contentHandler.endElement(I18N_NS, TEXT_EL, I18N_PREFIX_COLON + TEXT_EL); + contentHandler.endElement(Constants.I18N_NS, TEXT_EL, Constants.I18N_PREFIX_COLON + TEXT_EL); contentHandler.endElement(Constants.INSTANCE_NS, LABEL_EL, Constants.INSTANCE_PREFIX_COLON + LABEL_EL); contentHandler.endElement(Constants.INSTANCE_NS, ITEM_EL, Constants.INSTANCE_PREFIX_COLON + ITEM_EL); } Modified: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/FlowJXPathSelectionList.java URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/FlowJXPathSelectionList.java?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/FlowJXPathSelectionList.java (original) +++ cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/FlowJXPathSelectionList.java Thu Mar 24 12:27:00 2005 @@ -22,6 +22,7 @@ import org.apache.cocoon.components.ContextHelper; import org.apache.cocoon.components.flow.FlowHelper; import org.apache.cocoon.forms.Constants; +import org.apache.cocoon.forms.util.I18nMessage; import org.apache.cocoon.xml.AttributesImpl; import org.apache.cocoon.xml.XMLUtils; import org.apache.commons.jxpath.JXPathContext; @@ -46,13 +47,31 @@ private String labelPath; private Datatype datatype; private Object model; - - public FlowJXPathSelectionList(Context context, String listPath, String valuePath, String labelPath, Datatype datatype) { + private boolean nullable = false; + private String nullText; + private boolean nullTextIsI18nKey = false; + private String i18nCatalog; + private boolean labelIsI18nKey = false; + + public FlowJXPathSelectionList(Context context, + String listPath, + String valuePath, + String labelPath, + Datatype datatype, + String nullText, + boolean nullTextIsI18nKey, + String i18nCatalog, + boolean labelIsI18nKey) { this.context = context; this.listPath = listPath; this.valuePath = valuePath; this.labelPath = labelPath; this.datatype = datatype; + this.nullText = nullText; + this.nullable = (nullText != null); + this.nullTextIsI18nKey = nullTextIsI18nKey; + this.i18nCatalog =i18nCatalog; + this.labelIsI18nKey = labelIsI18nKey; } /** @@ -100,6 +119,39 @@ // Start the selection-list contentHandler.startElement(Constants.INSTANCE_NS, SELECTION_LIST_EL, Constants.INSTANCE_PREFIX_COLON + SELECTION_LIST_EL, XMLUtils.EMPTY_ATTRIBUTES); + if( this.nullable ) { + final AttributesImpl voidAttrs = new AttributesImpl( ); + voidAttrs.addCDATAAttribute( "value", "" ); + contentHandler.startElement( Constants.INSTANCE_NS, ITEM_EL, + Constants.INSTANCE_PREFIX_COLON + + ITEM_EL, voidAttrs ); + + if( this.nullText != null ) { + contentHandler.startElement( Constants.INSTANCE_NS, LABEL_EL, + Constants.INSTANCE_PREFIX_COLON + + LABEL_EL, XMLUtils.EMPTY_ATTRIBUTES ); + + if( this.nullTextIsI18nKey ) { + if( ( this.i18nCatalog != null ) && + ( this.i18nCatalog.trim( ).length( ) > 0 ) ) { + new I18nMessage( this.nullText, this.i18nCatalog ).toSAX( contentHandler ); + } else { + new I18nMessage( this.nullText ).toSAX( contentHandler ); + } + } else { + contentHandler.characters( this.nullText.toCharArray( ), 0, + this.nullText.length( ) ); + } + + contentHandler.endElement( Constants.INSTANCE_NS, LABEL_EL, + Constants.INSTANCE_PREFIX_COLON + + LABEL_EL ); + } + + contentHandler.endElement( Constants.INSTANCE_NS, ITEM_EL, + Constants.INSTANCE_PREFIX_COLON + + ITEM_EL ); + } while(iter.hasNext()) { String stringValue = ""; @@ -135,6 +187,15 @@ contentHandler.startElement(Constants.INSTANCE_NS, LABEL_EL, Constants.INSTANCE_PREFIX_COLON + LABEL_EL, XMLUtils.EMPTY_ATTRIBUTES); if (label instanceof XMLizable) { ((XMLizable)label).toSAX(contentHandler); + } else if( this.labelIsI18nKey ) { + String stringLabel = label.toString(); + + if( ( this.i18nCatalog != null ) && + ( this.i18nCatalog.trim( ).length( ) > 0 ) ) { + new I18nMessage( stringLabel, this.i18nCatalog ).toSAX( contentHandler ); + } else { + new I18nMessage( stringLabel ).toSAX( contentHandler ); + } } else { String stringLabel = label.toString(); contentHandler.characters(stringLabel.toCharArray(), 0, stringLabel.length()); Modified: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/FlowJXPathSelectionListBuilder.java URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/FlowJXPathSelectionListBuilder.java?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/FlowJXPathSelectionListBuilder.java (original) +++ cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/FlowJXPathSelectionListBuilder.java Thu Mar 24 12:27:00 2005 @@ -18,9 +18,12 @@ import org.apache.avalon.framework.context.Context; import org.apache.avalon.framework.context.ContextException; import org.apache.avalon.framework.context.Contextualizable; +import org.apache.cocoon.forms.Constants; import org.apache.cocoon.forms.util.DomHelper; import org.w3c.dom.Element; +import java.util.Map; + /** * Builds a selection list that will take its values from the flow page data. * The items list and, for each item, its value and label, are fetched using @@ -56,10 +59,37 @@ public SelectionList build(Element selectionListElement, Datatype datatype) throws Exception { String listPath = DomHelper.getAttribute(selectionListElement, "list-path"); - String keyPath = DomHelper.getAttribute(selectionListElement, "value-path"); - String valuePath = DomHelper.getAttribute(selectionListElement, "label-path"); - - return new FlowJXPathSelectionList(context, listPath, keyPath, valuePath, datatype); + String valuePath = DomHelper.getAttribute(selectionListElement, "value-path"); + Map nspfx = DomHelper.getInheritedNSDeclarations(selectionListElement); + String i18nPfx = (String)nspfx.get( Constants.I18N_NS ); + String labelPath = DomHelper.getAttribute(selectionListElement, "label-path", null); + boolean labelIsI18nKey = false; + if( labelPath == null ) + { + labelPath = DomHelper.getAttribute(selectionListElement, i18nPfx + ":label-path"); + labelIsI18nKey = true; + } + String nullText = DomHelper.getAttribute(selectionListElement, "null-text", null); + boolean nullTextIsI18nKey = false; + if( nullText == null ) { + nullText = DomHelper.getAttribute(selectionListElement, i18nPfx + ":null-text", null); + if( nullText != null ) { + nullTextIsI18nKey = true; + } + } + + String i18nCatalog = DomHelper.getAttribute(selectionListElement, "catalogue", null); + + + return new FlowJXPathSelectionList(context, + listPath, + valuePath, + labelPath, + datatype, + nullText, + nullTextIsI18nKey, + i18nCatalog, + labelIsI18nKey); } } Copied: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertor.java (from r158925, cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertor.java) URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertor.java?view=diff&rev=158944&p1=cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertor.java&r1=158925&p2=cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertor.java&r2=158944 ============================================================================== --- cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertor.java (original) +++ cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertor.java Thu Mar 24 12:27:00 2005 @@ -37,7 +37,7 @@ * </p> * * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> - * @version $Id: BeanConvertor.java,v 1.3 2004/12/30 13:37:45 giacomo Exp $ + * @version $Id$ */ public class BeanConvertor implements Convertor Copied: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertorBuilder.java (from r158925, cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertorBuilder.java) URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertorBuilder.java?view=diff&rev=158944&p1=cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertorBuilder.java&r1=158925&p2=cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertorBuilder.java&r2=158944 ============================================================================== --- cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertorBuilder.java (original) +++ cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/convertor/BeanConvertorBuilder.java Thu Mar 24 12:27:00 2005 @@ -36,7 +36,7 @@ * </p> * * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> - * @version $Id: BeanConvertorBuilder.java,v 1.2 2004/12/27 13:30:48 giacomo Exp $ + * @version $Id$ */ public class BeanConvertorBuilder implements ConvertorBuilder Copied: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/typeimpl/BeanType.java (from r158925, cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/typeimpl/BeanType.java) URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/typeimpl/BeanType.java?view=diff&rev=158944&p1=cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/typeimpl/BeanType.java&r1=158925&p2=cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/typeimpl/BeanType.java&r2=158944 ============================================================================== --- cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/typeimpl/BeanType.java (original) +++ cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/typeimpl/BeanType.java Thu Mar 24 12:27:00 2005 @@ -22,7 +22,7 @@ * The CForm type of a bean * * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> - * @version $Id: BeanType.java,v 1.1 2004/12/21 14:37:32 giacomo Exp $ + * @version $Id$ */ public class BeanType extends AbstractDatatype Copied: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/typeimpl/BeanTypeBuilder.java (from r158925, cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/typeimpl/BeanTypeBuilder.java) URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/typeimpl/BeanTypeBuilder.java?view=diff&rev=158944&p1=cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/typeimpl/BeanTypeBuilder.java&r1=158925&p2=cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/typeimpl/BeanTypeBuilder.java&r2=158944 ============================================================================== --- cocoon/blocks/core/forms/trunk/java/org/apache/cocoon/forms/datatype/typeimpl/BeanTypeBuilder.java (original) +++ cocoon/whiteboard/forms/java/org/apache/cocoon/forms/datatype/typeimpl/BeanTypeBuilder.java Thu Mar 24 12:27:00 2005 @@ -25,7 +25,7 @@ * Builder for [EMAIL PROTECTED] BeanType} * * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> - * @version $Id: BeanTypeBuilder.java,v 1.1 2004/12/21 14:37:32 giacomo Exp $ + * @version $Id$ */ public class BeanTypeBuilder extends AbstractDatatypeBuilder Modified: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java (original) +++ cocoon/whiteboard/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinition.java Thu Mar 24 12:27:00 2005 @@ -118,7 +118,8 @@ //--------------------------------------------------------------------------------------------- /** - * The definition of a repeater action that insert rows before the selected rows in a sibling repeater. + * The definition of a repeater action that insert rows before the selected rows in a sibling repeater, + * or at the end of the repeater if no row is selected. */ public static class InsertRowsActionDefinition extends RepeaterActionDefinition { @@ -131,14 +132,20 @@ this.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { Repeater repeater = ((RepeaterAction)event.getSource()).getRepeater(); + boolean foundSelection = false; for (int i = repeater.getSize() - 1; i >= 0; i--) { Repeater.RepeaterRow row = repeater.getRow(i); Widget selectWidget = row.getChild(selectName); if (Boolean.TRUE.equals(selectWidget.getValue())) { - // Clear selection and add a row - selectWidget.setValue(Boolean.FALSE); + // Add a row repeater.addRow(i); + foundSelection = true; } + } + + if (!foundSelection) { + // Add a row at the end + repeater.addRow(); } } }); Modified: cocoon/whiteboard/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java (original) +++ cocoon/whiteboard/forms/java/org/apache/cocoon/forms/formmodel/RepeaterActionDefinitionBuilder.java Thu Mar 24 12:27:00 2005 @@ -70,6 +70,7 @@ throw new Exception("Missing attribute 'command' at " + DomHelper.getLocation(widgetElement)); } + RepeaterActionDefinition definition = createDefinition(widgetElement, actionCommand); super.setupDefinition(widgetElement, definition); setDisplayData(widgetElement, definition); Modified: cocoon/whiteboard/forms/samples/flow/binding_example.js URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/samples/flow/binding_example.js?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/samples/flow/binding_example.js (original) +++ cocoon/whiteboard/forms/samples/flow/binding_example.js Thu Mar 24 12:27:00 2005 @@ -80,6 +80,8 @@ contact.setId("1"); contact.setFirstName("Hermann"); bean.addContact(contact); + bean.addDrink("Maer"); + bean.addDrink("Leffe"); form.load(bean); form.showForm("form2-display-pipeline"); Modified: cocoon/whiteboard/forms/samples/forms/form2_bind_bean.xml URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/samples/forms/form2_bind_bean.xml?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/samples/forms/form2_bind_bean.xml (original) +++ cocoon/whiteboard/forms/samples/forms/form2_bind_bean.xml Thu Mar 24 12:27:00 2005 @@ -50,7 +50,7 @@ <fb:value id="cntr" path="phoneCountry"/> </fb:aggregate> - <fb:multi-value id="drinks" parent-path="." row-path="drinks" direction="load"/> + <fb:multi-value id="drinks" parent-path="." row-path="drinks" direction="both"/> <!-- - Repeater requires unique identification mechanism of the row-nodes. Modified: cocoon/whiteboard/forms/samples/forms/form2_jx.xml URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/samples/forms/form2_jx.xml?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/samples/forms/form2_jx.xml (original) +++ cocoon/whiteboard/forms/samples/forms/form2_jx.xml Thu Mar 24 12:27:00 2005 @@ -49,6 +49,17 @@ </jx:forEach> </table> + <table border="1"> + <tr> + <th>drink</th> + </tr> + <jx:forEach var="item" items="${form2bean.drinks}"> + <tr> + <td>${item}</td> + </tr> + </jx:forEach> + </table> + <br/> <a href="form2bean.flow">Do it again</a> </body> Modified: cocoon/whiteboard/forms/samples/forms/xhr_carselector_template.xml URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/samples/forms/xhr_carselector_template.xml?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/samples/forms/xhr_carselector_template.xml (original) +++ cocoon/whiteboard/forms/samples/forms/xhr_carselector_template.xml Thu Mar 24 12:27:00 2005 @@ -88,7 +88,16 @@ </script> <title>Car selector with XMLHTTPRequest</title> <content> - <ft:form-template action="carselector" method="POST"> + <para> + This experimental sample demonstrates the use of XMLHttpRequest to update + fields without refreshing the page. It is currently broken: the form + cannot be successfully submitted, as the form model does not contain the + values of the type and model selection lists. After selecting a value in + the "model" field, the "type" and "model" fields are reset to their initial + values, instead of submitting the form. See also bugzilla 34077. + </para> + + <ft:form-template action="xhr_carselector" method="POST"> <ft:continuation-id/> <fi:group> <fi:styling layout="columns"/> @@ -107,5 +116,6 @@ </fi:items> </fi:group> </ft:form-template> + </content> </page> Modified: cocoon/whiteboard/forms/test/org/apache/cocoon/forms/datatype/FlowJXPathSelectionListTestCase.java URL: http://svn.apache.org/viewcvs/cocoon/whiteboard/forms/test/org/apache/cocoon/forms/datatype/FlowJXPathSelectionListTestCase.java?view=diff&r1=158943&r2=158944 ============================================================================== --- cocoon/whiteboard/forms/test/org/apache/cocoon/forms/datatype/FlowJXPathSelectionListTestCase.java (original) +++ cocoon/whiteboard/forms/test/org/apache/cocoon/forms/datatype/FlowJXPathSelectionListTestCase.java Thu Mar 24 12:27:00 2005 @@ -96,7 +96,7 @@ Element datatypeElement = (Element) sample.getElementsByTagNameNS(Constants.DEFINITION_NS, "datatype").item(0); Datatype datatype = datatypeManager.createDatatype(datatypeElement, false); FlowJXPathSelectionList list = new FlowJXPathSelectionList - (context, "beans", "key", "value", datatype); + (context, "beans", "key", "value", datatype,null,false,null,false); DOMBuilder dest = new DOMBuilder(); list.generateSaxFragment(dest, Locale.ENGLISH); Source expectedSource = new ResourceSource("resource://org/apache/cocoon/forms/datatype/FlowJXPathSelectionListTestCase.dest.xml"); @@ -127,7 +127,7 @@ Element datatypeElement = (Element) sample.getElementsByTagNameNS(Constants.DEFINITION_NS, "datatype").item(0); Datatype datatype = datatypeManager.createDatatype(datatypeElement, false); FlowJXPathSelectionList list = new FlowJXPathSelectionList - (context, "beans", "key", "value", datatype); + (context, "beans", "key", "value", datatype,null,false,null,false); DOMBuilder dest = new DOMBuilder(); list.generateSaxFragment(dest, Locale.ENGLISH); Source expectedSource = new ResourceSource("resource://org/apache/cocoon/forms/datatype/FlowJXPathSelectionListTestCaseWithNull.dest.xml");