You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2005/10/21 15:04:41 UTC

svn commit: r327169 - in /cocoon/blocks/forms/trunk: java/org/apache/cocoon/forms/binding/library/ java/org/apache/cocoon/forms/formmodel/ java/org/apache/cocoon/forms/formmodel/library/ samples/library/forms/ samples/library/libraries/common-types/

Author: sylvain
Date: Fri Oct 21 06:04:31 2005
New Revision: 327169

URL: http://svn.apache.org/viewcvs?rev=327169&view=rev
Log:
Fix bug #37005, AAOB in CForms library. Thanks to Philipp Schmidt <ph...@gmail.com>

Added:
    cocoon/blocks/forms/trunk/samples/library/libraries/common-types/types_template_jx.xml   (with props)
Modified:
    cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/binding/library/Library.java
    cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/AbstractContainerDefinitionBuilder.java
    cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/library/Library.java
    cocoon/blocks/forms/trunk/samples/library/forms/form2_model.xml
    cocoon/blocks/forms/trunk/samples/library/forms/hotel_model.xml
    cocoon/blocks/forms/trunk/samples/library/forms/hotel_template.xml
    cocoon/blocks/forms/trunk/samples/library/libraries/common-types/types_model.xml

Modified: cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/binding/library/Library.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/binding/library/Library.java?rev=327169&r1=327168&r2=327169&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/binding/library/Library.java (original)
+++ cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/binding/library/Library.java Fri Oct 21 06:04:31 2005
@@ -111,8 +111,8 @@
 		String librarykey = null;
 		String definitionkey = key;
 		
-		if(key.indexOf(":")>-1) {
-			String[] parts = StringUtils.split(SEPARATOR);
+		if(key.indexOf(SEPARATOR)>-1) {
+			String[] parts = StringUtils.split(key,SEPARATOR);
 			librarykey = parts[0];
 			definitionkey = parts[1];
 			for(int i=2; i<parts.length; i++) {

Modified: cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/AbstractContainerDefinitionBuilder.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/AbstractContainerDefinitionBuilder.java?rev=327169&r1=327168&r2=327169&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/AbstractContainerDefinitionBuilder.java (original)
+++ cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/AbstractContainerDefinitionBuilder.java Fri Oct 21 06:04:31 2005
@@ -43,6 +43,7 @@
             Element widgetElement = widgetElements[i];
 
             this.context = new WidgetDefinitionBuilderContext(oldContext);
+            this.context.setSuperDefinition(null);
 
             String newId = DomHelper.getAttribute(widgetElement, "extends", null);
             WidgetDefinition def = null;
@@ -51,8 +52,6 @@
                     this.context.setSuperDefinition(def);
                 else if ((def = definition.getWidgetDefinition(newId)) != null)
                     this.context.setSuperDefinition(def);
-                else
-                    this.context.setSuperDefinition(null);
                 // throw new Exception("Widget to inherit from ("+newId+") not
                 // found! (at "+DomHelper.getLocation(element)+")");
             }

Modified: cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/library/Library.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/library/Library.java?rev=327169&r1=327168&r2=327169&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/library/Library.java (original)
+++ cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/library/Library.java Fri Oct 21 06:04:31 2005
@@ -115,8 +115,8 @@
 		String librarykey = null;
 		String definitionkey = key;
 		
-		if(key.indexOf(":")>-1) {
-			String[] parts = StringUtils.split(SEPARATOR);
+		if(key.indexOf(SEPARATOR)>-1) {
+			String[] parts = StringUtils.split(key,SEPARATOR);
 			librarykey = parts[0];
 			definitionkey = parts[1];
 			for(int i=2; i<parts.length; i++) {

Modified: cocoon/blocks/forms/trunk/samples/library/forms/form2_model.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/samples/library/forms/form2_model.xml?rev=327169&r1=327168&r2=327169&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/samples/library/forms/form2_model.xml (original)
+++ cocoon/blocks/forms/trunk/samples/library/forms/form2_model.xml Fri Oct 21 06:04:31 2005
@@ -19,7 +19,7 @@
   xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
   
   <fd:widgets>
-    <fd:import prefix="lib" uri="libraries/library_form1.xml"/>
+    <fd:import prefix="lib" uri="../libraries/library_form1.xml"/>
     
     <fd:new id="lib:class1"/>
     <fd:expand id="lib:field2"/>
@@ -30,6 +30,7 @@
     
     <fd:field id="somefield">
       <fd:label>Somefield</fd:label>
+      <fd:datatype base="string"/>
     </fd:field>
     
   </fd:widgets>

Modified: cocoon/blocks/forms/trunk/samples/library/forms/hotel_model.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/samples/library/forms/hotel_model.xml?rev=327169&r1=327168&r2=327169&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/samples/library/forms/hotel_model.xml (original)
+++ cocoon/blocks/forms/trunk/samples/library/forms/hotel_model.xml Fri Oct 21 06:04:31 2005
@@ -14,7 +14,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<fd:library
+<fd:form
   xmlns:fd="http://apache.org/cocoon/forms/1.0#definition"
   xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
   <fd:widgets>
@@ -62,7 +62,7 @@
         </fd:booleanfield>
       </fd:widgets>
     </fd:repeater>
-    <fd:repeater-action repeater="persons" action-command="add-row" id="personsAddRow">
+    <fd:repeater-action repeater="persons" command="add-row" id="personsAddRow">
       <fd:label>Add person</fd:label>
       <fd:help>Add a new record.</fd:help>
     </fd:repeater-action>
@@ -83,4 +83,4 @@
     
     
   </fd:widgets>
-</fd:library>
+</fd:form>

Modified: cocoon/blocks/forms/trunk/samples/library/forms/hotel_template.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/samples/library/forms/hotel_template.xml?rev=327169&r1=327168&r2=327169&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/samples/library/forms/hotel_template.xml (original)
+++ cocoon/blocks/forms/trunk/samples/library/forms/hotel_template.xml Fri Oct 21 06:04:31 2005
@@ -18,6 +18,7 @@
   xmlns:fi="http://apache.org/cocoon/forms/1.0#instance"
   xmlns:jx="http://apache.org/cocoon/templates/jx/1.0">
   <jx:import uri="resource://org/apache/cocoon/forms/generation/jx-macros.xml"/>
+  <jx:import uri="libraries/common-types/types_template_jx.xml"/>
   <title>Hotel Booking Sample (using Libraries)</title>
   <content>
     <ft:form-template action="#{$cocoon/continuation/id}.continue" method="POST">
@@ -34,15 +35,7 @@
         <tr>
           <td colspan="2">
             Reserve room:
-            <ft:group id="booking">
-              <fi:group>
-                <fi:styling layout="row"/>
-                <fi:items>
-                  <ft:widget id="from"/>
-                  <ft:widget id="to"/>
-                </fi:items>
-              </fi:group>
-            </ft:group>
+            <duration id="booking"/>
           </td>
         </tr>
         <tr>
@@ -50,30 +43,48 @@
         </tr>
         <tr>
           <td colspan="2">
-            <table cellspacing="0">
+            <table cellspacing="0" style="border-top: 1px solid black;">
               <jx:choose>
                 <jx:when test="${widget.getChild('persons').getSize() == 0}">
-                  <tr><td colspan="5" align="center"><em>There are no persons to display</em></td></tr>
+                  <tr><td align="center"><em>There are no rows present yet!</em></td></tr>
                 </jx:when>
                 <jx:otherwise>
                   <ft:repeater-widget id="persons">
                     <tr>
-                      <ft:group id="person">
-                        <td><ft:widget-label id="firstname"/></td>
-                        <td><ft:widget-label id="lastname"/></td>
-                        <td><ft:widget-label id="title"/></td>
-                      </ft:group>
-                      <td><ft:widget-label id="child"/></td>
-                      <td>&#160;</td>
-                    </tr>
-                    <tr>
-                      <ft:group id="person">
-                        <td><ft:widget id="firstname"/></td>
-                        <td><ft:widget id="lastname"/></td>
-                        <td><ft:widget id="title"/></td>
-                      </ft:group>
-                      <td><ft:widget id="child"/></td>
-                      <td><ft:widget id="moveUp"/><ft:widget id="moveDown"/><ft:widget id="deleteRow"/></td>
+                     <td style="border-bottom: 1px solid black;"><person/></td>
+                      <td style="border-bottom: 1px solid black;">
+                        <fi:group>
+                          <fi:styling layout="rows"/>
+                          <fi:items>
+                            <ft:widget id="child"/>
+                          </fi:items>
+                        </fi:group>
+                      </td>
+                      <td style="border-bottom: 1px solid black; border-left: 1px solid black;">
+                        <jx:choose>
+                          <jx:when test="${repeaterLoop.first}">
+                            <img src="resources/forms/img/blank_btn.gif"/>
+                          </jx:when>
+                          <jx:otherwise>
+                            <ft:widget id="moveUp">
+                              <fi:styling type="image" src="resources/forms/img/move_up.gif"/>
+                            </ft:widget>
+                          </jx:otherwise>
+                        </jx:choose>
+                        <jx:choose>
+                          <jx:when test="${repeaterLoop.last}">
+                            <img src="resources/forms/img/blank_btn.gif"/>
+                          </jx:when>
+                          <jx:otherwise>
+                            <ft:widget id="moveDown">
+                              <fi:styling type="image" src="resources/forms/img/move_down.gif"/>
+                            </ft:widget>
+                          </jx:otherwise>
+                        </jx:choose>
+                        <ft:widget id="deleteRow">
+                          <fi:styling type="image" src="resources/forms/img/delete.gif"/>
+                        </ft:widget>
+                      </td>
                     </tr>
                   </ft:repeater-widget>
                 </jx:otherwise>
@@ -94,18 +105,7 @@
         </tr>
         <tr>
           <td colspan="2">
-            <ft:group id="address">
-              <fi:group>
-                <fi:styling layout="rows"/>
-                <fi:items>
-                  <ft:widget id="street"/>
-                  <ft:widget id="number"/>
-                  <ft:widget id="zipcode"/>
-                  <ft:widget id="city"/>
-                  <ft:widget id="country"/>
-                </fi:items>
-              </fi:group>
-            </ft:group>
+            <address/>
           </td>
         </tr>
         <tr><td colspan="2"><input type="submit"/></td></tr>

Modified: cocoon/blocks/forms/trunk/samples/library/libraries/common-types/types_model.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/samples/library/libraries/common-types/types_model.xml?rev=327169&r1=327168&r2=327169&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/samples/library/libraries/common-types/types_model.xml (original)
+++ cocoon/blocks/forms/trunk/samples/library/libraries/common-types/types_model.xml Fri Oct 21 06:04:31 2005
@@ -258,22 +258,22 @@
     <fd:repeater id="genericRepeater">
       <fd:widgets>
         
-        <fd:row-action id="moveUp" action-command="move-up">
+        <fd:row-action id="moveUp" command="move-up">
           <fd:help>Move this record up.</fd:help>
           <fd:label>Up</fd:label>
         </fd:row-action>
         
-        <fd:row-action id="moveDown" action-command="move-down">
+        <fd:row-action id="moveDown" command="move-down">
           <fd:help>Move this record down.</fd:help>
           <fd:label>Down</fd:label>
         </fd:row-action>
         
-        <fd:row-action id="deleteRow" action-command="delete">
+        <fd:row-action id="deleteRow" command="delete">
           <fd:help>Remove this record.</fd:help>
           <fd:label>Delete</fd:label>
         </fd:row-action>
         
-        <fd:row-action id="addNewRow" action-command="add-after">
+        <fd:row-action id="addNewRow" command="add-after">
           <fd:help>Add a new record after this one.</fd:help>
           <fd:label>Add</fd:label>
         </fd:row-action>
@@ -301,7 +301,7 @@
             
           </fd:widgets>
         </fd:repeater>
-        <fd:repeater-action repeater="contactInformationRepeater" action-command="add-row" id="contactInformationRepeaterAddRow">
+        <fd:repeater-action repeater="contactInformationRepeater" command="add-row" id="contactInformationRepeaterAddRow">
           <fd:label>Add new record</fd:label>
           <fd:help>Add a new record.</fd:help>
         </fd:repeater-action>

Added: cocoon/blocks/forms/trunk/samples/library/libraries/common-types/types_template_jx.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/samples/library/libraries/common-types/types_template_jx.xml?rev=327169&view=auto
==============================================================================
--- cocoon/blocks/forms/trunk/samples/library/libraries/common-types/types_template_jx.xml (added)
+++ cocoon/blocks/forms/trunk/samples/library/libraries/common-types/types_template_jx.xml Fri Oct 21 06:04:31 2005
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright 1999-2005 The Apache Software Foundation
+    
+    Licensed 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.
+-->
+<jx:template xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
+    xmlns:ft="http://apache.org/cocoon/forms/1.0#template"
+    xmlns:fi="http://apache.org/cocoon/forms/1.0#instance">
+    
+    <jx:macro name="duration">
+        <jx:parameter name="id" default="duration"/>
+        <jx:parameter name="layout" default="row"/>
+        <ft:group id="${id}">
+            <fi:group>
+                <fi:styling layout="${layout}"/>
+                <fi:items>
+                    <ft:widget id="from"/>
+                    <ft:widget id="to"/>
+                </fi:items>
+            </fi:group>
+        </ft:group>
+    </jx:macro>
+    
+    <jx:macro name="address">
+        <jx:parameter name="id" default="address"/>
+        <jx:parameter name="layout" default="rows"/>
+        <ft:group id="${id}">
+            <fi:group>
+                <fi:styling layout="${layout}"/>
+                <fi:items>
+                    <ft:widget id="street"/>
+                    <ft:widget id="number"/>
+                    <ft:widget id="zipcode"/>
+                    <ft:widget id="city"/>
+                    <ft:widget id="country"/>
+                </fi:items>
+            </fi:group>
+        </ft:group>
+    </jx:macro>
+    
+    <jx:macro name="person">
+        <jx:parameter name="id" default="person"/>
+        <jx:parameter name="layout" default="rows"/>
+        <ft:group id="${id}">
+            <fi:group>
+                <fi:styling layout="${layout}"/>
+                <fi:items>
+                    <ft:widget id="title"/>
+                    <ft:widget id="firstname"/>
+                    <ft:widget id="lastname"/>
+                </fi:items>
+            </fi:group>
+        </ft:group>
+    </jx:macro>
+    
+    <!-- unfortunately, this doesn't work yet -->
+    <!--
+    <jx:macro name="genericRepeater">
+        <jx:parameter name="id"/>
+        <table cellspacing="0">
+            <jx:choose>
+                <jx:when test="${widget.getChild(id).getSize() == 0}">
+                    <tr><td align="center"><em>There are no rows present yet!</em></td></tr>
+                </jx:when>
+                <jx:otherwise>
+                    <ft:repeater-widget id="${id}">
+                        <tr>
+                            <jx:evalBody/>
+                            <td>
+                                <jx:choose>
+                                    <jx:when test="${repeaterLoop.first}">
+                                        <img src="resources/forms/img/blank_btn.gif"/>
+                                    </jx:when>
+                                    <jx:otherwise>
+                                        <ft:widget id="moveUp">
+                                            <fi:styling type="image" src="resources/forms/img/move_up.gif"/>
+                                        </ft:widget>
+                                    </jx:otherwise>
+                                </jx:choose>
+                                <jx:choose>
+                                    <jx:when test="${repeaterLoop.last}">
+                                        <img src="resources/forms/img/blank_btn.gif"/>
+                                    </jx:when>
+                                    <jx:otherwise>
+                                        <ft:widget id="moveDown">
+                                            <fi:styling type="image" src="resources/forms/img/move_down.gif"/>
+                                        </ft:widget>
+                                    </jx:otherwise>
+                                </jx:choose>
+                                <ft:widget id="deleteRow">
+                                    <fi:styling type="image" src="resources/forms/img/delete.gif"/>
+                                </ft:widget>
+                            </td>
+                        </tr>
+                    </ft:repeater-widget>
+                </jx:otherwise>
+            </jx:choose>
+        </table>
+    </jx:macro>
+    -->
+    
+</jx:template>

Propchange: cocoon/blocks/forms/trunk/samples/library/libraries/common-types/types_template_jx.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cocoon/blocks/forms/trunk/samples/library/libraries/common-types/types_template_jx.xml
------------------------------------------------------------------------------
    svn:keywords = Id