You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by ug...@apache.org on 2006/03/29 18:42:04 UTC
svn commit: r389826 -
/cocoon/branches/BRANCH_2_1_X/src/blocks/javaflow/java/org/apache/cocoon/forms/flow/java/FormInstance.java
Author: ugo
Date: Wed Mar 29 08:42:04 2006
New Revision: 389826
URL: http://svn.apache.org/viewcvs?rev=389826&view=rev
Log:
Applying patch COCOON-1812
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/javaflow/java/org/apache/cocoon/forms/flow/java/FormInstance.java
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/javaflow/java/org/apache/cocoon/forms/flow/java/FormInstance.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/javaflow/java/org/apache/cocoon/forms/flow/java/FormInstance.java?rev=389826&r1=389825&r2=389826&view=diff
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/javaflow/java/org/apache/cocoon/forms/flow/java/FormInstance.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/javaflow/java/org/apache/cocoon/forms/flow/java/FormInstance.java Wed Mar 29 08:42:04 2006
@@ -16,12 +16,17 @@
package org.apache.cocoon.forms.flow.java;
+import java.io.IOException;
import java.util.Locale;
+import javax.servlet.http.HttpServletResponse;
+
import org.apache.avalon.framework.CascadingRuntimeException;
import org.apache.cocoon.components.flow.FlowHelper;
import org.apache.cocoon.components.flow.java.AbstractContinuable;
+import org.apache.cocoon.components.flow.java.Continuation;
import org.apache.cocoon.components.flow.java.VarMap;
+import org.apache.cocoon.environment.http.HttpEnvironment;
import org.apache.cocoon.forms.FormContext;
import org.apache.cocoon.forms.FormManager;
import org.apache.cocoon.forms.binding.Binding;
@@ -177,14 +182,35 @@
do {
sendPageAndWait(uri, bizData);
- FormContext formContext = new FormContext(getRequest(), locale);
-
- // Prematurely add the bizData as a request attribute so that event listeners can use it
- // (the same is done by cocoon.sendPage())
- FlowHelper.setContextObject(this.getObjectModel(), bizData);
-
- finished = this.form.process(formContext);
-
+ if (getRequest().getParameter("cocoon-ajax-continue") == null) {
+ FormContext formContext = new FormContext(getRequest(), locale);
+
+ // Prematurely add the bizData as a request attribute so that event listeners can use it
+ // (the same is done by cocoon.sendPage())
+ FlowHelper.setContextObject(this.getObjectModel(), bizData);
+
+ finished = this.form.process(formContext);
+
+ // See /cocoon-2.1.X/src/blocks/forms/java/org/apache/cocoon/forms/flow/javascript/Form.js line 176-201
+ if (finished && getRequest().getParameter("cocoon-ajax") != null) {
+ HttpServletResponse httpResponse = (HttpServletResponse) getObjectModel().get(HttpEnvironment.HTTP_RESPONSE_OBJECT);
+ sendStatus(200);
+ httpResponse.setContentType("text/xml");
+ String text = "<?xml version='1.0'?><bu:document xmlns:bu='" +
+ org.apache.cocoon.ajax.BrowserUpdateTransformer.BU_NSURI +
+ "'><bu:continue/></bu:document>";
+ httpResponse.setContentLength(text.length());
+ try {
+ httpResponse.getWriter().print(text);
+ } catch (IOException e) {
+ // Do nothing
+ }
+ Continuation.suspend();
+ }
+ } else {
+ finished = true;
+ }
+
} while(!finished);
}
/*