You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by ti...@apache.org on 2004/09/13 17:45:28 UTC

svn commit: rev 45981 - cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel

Author: tim
Date: Mon Sep 13 08:45:28 2004
New Revision: 45981

Modified:
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/AbstractContainerWidget.java
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/AbstractWidget.java
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Action.java
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/AggregateField.java
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/BooleanField.java
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Field.java
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/MultiValueField.java
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Repeater.java
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Union.java
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Upload.java
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Widget.java
Log:
Replace getProcessRequests() with:
  getProcessMyRequests() and getProcessChildRequests()
Separate setProcessRequests() into
  setProcessMyRequests() and setProcessChildRequests()
...and have the original setProcessRequests() call both of these
new methods, as a convenience to set them both at the same time.


Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/AbstractContainerWidget.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/AbstractContainerWidget.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/AbstractContainerWidget.java	Mon Sep 13 08:45:28 2004
@@ -82,7 +82,7 @@
      *                    of the contained widgets.
      */
     public void readFromRequest(FormContext formContext) {
-        if(getProcessRequests() == true) {
+        if(getProcessChildRequests() == true) {
             widgets.readFromRequest(formContext);
         }
     }

Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/AbstractWidget.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/AbstractWidget.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/AbstractWidget.java	Mon Sep 13 08:45:28 2004
@@ -47,7 +47,12 @@
     /**
      * Process request parameters for this widget?
      */
-    private boolean processRequests = true;
+    private boolean processMyRequests = true;
+
+    /**
+     * Process request parameters for children of this widget?
+     */
+    private boolean processChildRequests = true;
 
     /**
      * Lazy loaded reference to the top-level form.
@@ -205,19 +210,44 @@
     }
 
     /**
+     * Controls whether {@link #readFromRequest(FormContext formContext)}
+     * processes the request parameter(s) for this widget and its children.
+     */
+    public void setProcessRequests(boolean processRequests) {
+      this.processMyRequests = processRequests;
+      this.processChildRequests = processRequests;
+    }
+
+    /**
      * Returns whether {@link #readFromRequest(FormContext formContext)}
      * processes the request parameter(s) for this widget.
      */
-    public boolean getProcessRequests() {
-      return this.processRequests;
+    public boolean getProcessMyRequests() {
+      return this.processMyRequests;
     }
 
     /**
      * Controls whether {@link #readFromRequest(FormContext formContext)}
      * processes the request parameter(s) for this widget.
      */
-    public void setProcessRequests(boolean processRequests) {
-      this.processRequests = processRequests;
+    public void setProcessMyRequests(boolean processMyRequests) {
+      this.processMyRequests = processMyRequests;
+    }
+
+    /**
+     * Returns whether {@link #readFromRequest(FormContext formContext)}
+     * processes the request parameter(s) for children of this widget.
+     */
+    public boolean getProcessChildRequests() {
+      return this.processChildRequests;
+    }
+
+    /**
+     * Controls whether {@link #readFromRequest(FormContext formContext)}
+     * processes the request parameter(s) for children of this widget.
+     */
+    public void setProcessChildRequests(boolean processChildRequests) {
+      this.processChildRequests = processChildRequests;
     }
 
     public boolean isRequired() {

Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Action.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Action.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Action.java	Mon Sep 13 08:45:28 2004
@@ -44,7 +44,7 @@
     }
 
     public void readFromRequest(final FormContext formContext) {
-        if(getProcessRequests() == true) {
+        if(getProcessMyRequests() == true) {
             Form form = getForm();
 
             // Set the submit widget if we can determine it from the request

Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/AggregateField.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/AggregateField.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/AggregateField.java	Mon Sep 13 08:45:28 2004
@@ -95,26 +95,28 @@
     }
 
     public void readFromRequest(FormContext formContext) {
-        if(getProcessRequests() == true) {
-            String newEnteredValue = formContext.getRequest().getParameter(getRequestParameterName());
-            if (newEnteredValue != null) {
-                // There is one aggregated entered value. Read it and split it.
+        String newEnteredValue = formContext.getRequest().getParameter(getRequestParameterName());
+        if (newEnteredValue != null) {
+            // There is one aggregated entered value. Read it and split it.
+            if(getProcessMyRequests() == true) {
                 super.readFromRequest(formContext);
-                if (this.valueState == VALUE_UNPARSED) {
-                    setFieldsValues(enteredValue);
-                }
-            } else {
-                // Check if there are multiple splitted values. Read them and aggregate them.
-                for (Iterator i = fields.iterator(); i.hasNext();) {
-                    Field field = (Field)i.next();
+            }
+            if (this.valueState == VALUE_UNPARSED) {
+                setFieldsValues(enteredValue);
+            }
+        } else {
+            // Check if there are multiple splitted values. Read them and aggregate them.
+            for (Iterator i = fields.iterator(); i.hasNext();) {
+                Field field = (Field)i.next();
+                if(getProcessChildRequests() == true) {
                     field.readFromRequest(formContext);
-                    if (field.valueState == VALUE_UNPARSED) {
-                        this.valueState = VALUE_UNPARSED;
-                    }
                 }
-                if (this.valueState == VALUE_UNPARSED) {
-                    combineFields();
+                if (field.valueState == VALUE_UNPARSED) {
+                    this.valueState = VALUE_UNPARSED;
                 }
+            }
+            if (this.valueState == VALUE_UNPARSED) {
+                combineFields();
             }
         }
     }

Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/BooleanField.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/BooleanField.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/BooleanField.java	Mon Sep 13 08:45:28 2004
@@ -62,7 +62,7 @@
     }
 
     public void readFromRequest(FormContext formContext) {
-        if(getProcessRequests() == true) {
+        if(getProcessMyRequests() == true) {
             validationError = null;
             Object oldValue = value;
             String param = formContext.getRequest().getParameter(getRequestParameterName());

Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Field.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Field.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Field.java	Mon Sep 13 08:45:28 2004
@@ -175,7 +175,7 @@
     }
 
     public void readFromRequest(FormContext formContext) {
-        if(getProcessRequests() == true) {
+        if(getProcessMyRequests() == true) {
             String newEnteredValue = formContext.getRequest().getParameter(getRequestParameterName());
             // FIXME: Should we consider only non-null values, which allows to
             // split a form across several screens?

Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/MultiValueField.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/MultiValueField.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/MultiValueField.java	Mon Sep 13 08:45:28 2004
@@ -72,7 +72,7 @@
     }
 
     public void readFromRequest(FormContext formContext) {
-        if(getProcessRequests() == true) {
+        if(getProcessMyRequests() == true) {
             enteredValues = formContext.getRequest().getParameterValues(getRequestParameterName());
             validationError = null;
             values = null;

Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Repeater.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Repeater.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Repeater.java	Mon Sep 13 08:45:28 2004
@@ -181,7 +181,7 @@
     }
     
     public void readFromRequest(FormContext formContext) {
-        if(getProcessRequests() == true) {
+        if(getProcessMyRequests() == true) {
             // read number of rows from request, and make an according number of rows
             String sizeParameter = formContext.getRequest().getParameter(getRequestParameterName() + ".size");
             if (sizeParameter != null) {
@@ -208,7 +208,9 @@
                     }
                 }
             }
+        }
  
+        if(getProcessChildRequests() == true) {
             // let the rows read their data from the request
             Iterator rowIt = rows.iterator();
             while (rowIt.hasNext()) {

Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Union.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Union.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Union.java	Mon Sep 13 08:45:28 2004
@@ -73,29 +73,30 @@
     }
 
     public void readFromRequest(FormContext formContext) {
-        if(getProcessRequests() == true) {
-            // Ensure the case widget has read its value
-            this.caseWidget.readFromRequest(formContext);
+        // Ensure the case widget has read its value
+        this.caseWidget.readFromRequest(formContext);
 
-            Widget widget;
-            // Read current case from request
-            String newValue = (String)getValue();
-            if (newValue != null && !newValue.equals("")) {
+        Widget widget;
+        // Read current case from request
+        String newValue = (String)getValue();
+        if (newValue != null && !newValue.equals("")) {
 
-                if (getForm().getSubmitWidget() == this.caseWidget && !newValue.equals(this.caseValue)) {
-                    // If submitted by the case widget and its value has changed, read the values
-                    // for the previous case values. This allows to keep any entered values
-                    // despite the case change.
-                    widget = getChild(this.caseValue);
-                } else {
-                    // Get the corresponding widget (will create it if needed)
-                    widget = getChild(newValue);
-                }
+            if (getProcessMyRequests() == false
+                || (getForm().getSubmitWidget() == this.caseWidget && !newValue.equals(this.caseValue))) {
+                // If submitted by the case widget and its value has changed, read the values
+                // for the previous case value. This allows to keep any already entered values
+                // despite the case change.
+                widget = getChild(this.caseValue);
+            } else {
+                // Get the corresponding widget (will create it if needed)
+                widget = getChild(newValue);
+            }
 
-                if (widget != null) {
-                    widget.readFromRequest(formContext);
-                }
+            if (getProcessChildRequests() == true && widget != null) {
+                widget.readFromRequest(formContext);
             }
+        }
+        if(getProcessMyRequests() == true) {
             this.caseValue = newValue;
         }
     }

Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Upload.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Upload.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Upload.java	Mon Sep 13 08:45:28 2004
@@ -71,7 +71,7 @@
     }
 
     public void readFromRequest(FormContext formContext) {
-        if(getProcessRequests() == true) {
+        if(getProcessMyRequests() == true) {
             Object obj = formContext.getRequest().get(getRequestParameterName());
 
             // If the request object is a Part, keep it

Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Widget.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Widget.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/formmodel/Widget.java	Mon Sep 13 08:45:28 2004
@@ -119,16 +119,34 @@
     public Widget lookupWidget(String path);
 
     /**
+     * Controls whether {@link #readFromRequest(FormContext formContext)}
+     * processes the request parameter(s) for this widget and its children.
+     */
+    public void setProcessRequests(boolean processRequests);
+
+    /**
      * Returns whether {@link #readFromRequest(FormContext formContext)}
      * processes the request parameter(s) for this widget.
      */
-    public boolean getProcessRequests();
+    public boolean getProcessMyRequests();
 
     /**
      * Controls whether {@link #readFromRequest(FormContext formContext)}
      * processes the request parameter(s) for this widget.
      */
-    public void setProcessRequests(boolean processRequests);
+    public void setProcessMyRequests(boolean processMyRequests);
+
+    /**
+     * Returns whether {@link #readFromRequest(FormContext formContext)}
+     * processes the request parameter(s) for children of this widget.
+     */
+    public boolean getProcessChildRequests();
+
+    /**
+     * Controls whether {@link #readFromRequest(FormContext formContext)}
+     * processes the request parameter(s) for children of this widget.
+     */
+    public void setProcessChildRequests(boolean processChildRequests);
 
     /**
      * Lets this widget read its data from a request. At this point the Widget