coliver 2003/02/23 11:21:22
Modified: src/java/org/apache/cocoon/transformation
XMLFormTransformer.java
Log:
'Updated to support using the Cocoon flow layer with XMLForm'
Revision Changes Path
1.19 +28 -2
xml-cocoon2/src/java/org/apache/cocoon/transformation/XMLFormTransformer.java
Index: XMLFormTransformer.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/transformation/XMLFormTransformer.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- XMLFormTransformer.java 31 Jan 2003 22:51:57 -0000 1.18
+++ XMLFormTransformer.java 23 Feb 2003 19:21:22 -0000 1.19
@@ -69,7 +69,8 @@
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;
-
+import org.apache.cocoon.components.flow.WebContinuation;
+import org.apache.cocoon.environment.Environment;
/**
* Transforms a document with XMLForm
* elements into a document in the same namespace,
@@ -526,7 +527,32 @@
startElementWithOptionalRefAndSimpleContent( uri, name, raw, attributes
);
}
else if (
- TAG_SUBMIT.equals(name) ||
+ TAG_SUBMIT.equals(name) )
+ {
+ String continuation = attributes.getValue("continuation");
+ if (continuation != null) {
+ WebContinuation kont
+ = (WebContinuation)((Environment)resolver).getAttribute("kont");
+ if (kont != null) {
+ String id;
+ int level = 0;
+ if (continuation.equals("back")) {
+ level = 3;
+ }
+ id = kont.getContinuation(level).getId();
+ AttributesImpl impl = new AttributesImpl(attributes);
+ int index = impl.getIndex("id");
+ if (index >= 0) {
+ impl.setValue(index, id);
+ } else {
+ impl.addAttribute("", "id", "id", "", id);
+ }
+ attributes = impl;
+ }
+ }
+ super.startElement(uri, name, raw, attributes);
+ }
+ else if (
TAG_CANCEL.equals(name) ||
TAG_RESET.equals(name) ||
TAG_ITEM.equals(name)