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/11/01 18:24:45 UTC

svn commit: rev 56256 - cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/transformation

Author: tim
Date: Mon Nov  1 09:24:43 2004
New Revision: 56256

Modified:
   cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectWidgetReplacingPipe.java
Log:
For the FormsTransformer remove output of fi:choose, fi:struct,
and fi:union elements (not used by the stylesheets), and prevent
ft:case and ft:when from slipping into the output.


Modified: cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectWidgetReplacingPipe.java
==============================================================================
--- cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectWidgetReplacingPipe.java	(original)
+++ cocoon/trunk/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectWidgetReplacingPipe.java	Mon Nov  1 09:24:43 2004
@@ -97,6 +97,7 @@
     private final DocHandler                 docHandler             = new DocHandler();
     private final FormHandler                formHandler            = new FormHandler();
     private final NestedHandler              nestedHandler          = new NestedHandler();
+    private final SkipHandler                skipHandler            = new SkipHandler();
     private final WidgetLabelHandler         widgetLabelHandler     = new WidgetLabelHandler();
     private final WidgetHandler              widgetHandler          = new WidgetHandler();
     private final RepeaterSizeHandler        repeaterSizeHandler    = new RepeaterSizeHandler();
@@ -361,6 +362,22 @@
         }
     }
 
+    protected class SkipHandler extends Handler {
+        public Handler process() throws SAXException {
+            switch(event) {
+            case EVENT_START_ELEMENT:
+                return this;
+            case EVENT_ELEMENT:
+                return nestedTemplate();
+            case EVENT_END_ELEMENT:
+                return this;
+            default:
+                out.copy();
+                return this;
+            }
+        }
+    }
+
     protected class WidgetLabelHandler extends Handler {
         public Handler process() throws SAXException {
             switch (event) {
@@ -522,14 +539,10 @@
                 }
                 contextWidgets.addFirst(contextWidget);
                 contextWidget = widget;
-                out.element(Constants.INSTANCE_PREFIX, Constants.INSTANCE_NS, "struct");
-                out.attributes();
-                out.startElement();
                 return this;
             case EVENT_ELEMENT:
                 return nestedTemplate();
             case EVENT_END_ELEMENT:
-                out.copy();
                 contextWidget = (Widget)contextWidgets.removeFirst();
                 return this;
             default:
@@ -553,8 +566,6 @@
                 // Choose does not change the context widget like Union does:
                 //    contextWidget = widget;
                 chooseWidgets.addFirst(widget);
-                out.element(Constants.INSTANCE_PREFIX, Constants.INSTANCE_NS, "choose");
-                out.startElement();
                 return this;
             case EVENT_ELEMENT:
                 if (Constants.TEMPLATE_NS.equals(input.uri)) {
@@ -563,7 +574,7 @@
                         if (testValue == null) throwSAXException("Element \"when\" missing required \"value\" attribute.");
                         String value = (String)((Widget)chooseWidgets.get(0)).getValue();
                         if (testValue.equals(value)) {
-                            return nestedHandler;
+                            return skipHandler;
                         } else {
                             return nullHandler;
                         }
@@ -576,7 +587,6 @@
                     return choosePassThruHandler;
                 }
             case EVENT_END_ELEMENT:
-                out.endElement();
                 chooseWidgets.removeFirst();
                 contextWidget = (Widget)contextWidgets.removeFirst();
                 return this;
@@ -597,7 +607,7 @@
                         if (testValue == null) throwSAXException("Element \"when\" missing required \"value\" attribute.");
                         String value = (String)((Widget)chooseWidgets.get(0)).getValue();
                         if (testValue.equals(value)) {
-                            return nestedHandler;
+                            return skipHandler;
                         } else {
                             return nullHandler;
                         }
@@ -627,8 +637,6 @@
                 }
                 contextWidgets.addFirst(contextWidget);
                 contextWidget = widget;
-                out.element(Constants.INSTANCE_PREFIX, Constants.INSTANCE_NS, "union");
-                out.startElement();
                 return this;
             case EVENT_ELEMENT:
                 if (Constants.TEMPLATE_NS.equals(input.uri)) {
@@ -637,7 +645,7 @@
                         if (id == null) throwSAXException("Element \"case\" missing required \"id\" attribute.");
                         String value = (String)contextWidget.getValue();
                         if (id.equals(value != null ? value : "")) {
-                            return nestedHandler;
+                            return skipHandler;
                         } else {
                             return nullHandler;
                         }
@@ -650,7 +658,6 @@
                     return unionPassThruHandler;
                 }
             case EVENT_END_ELEMENT:
-                out.endElement();
                 contextWidget = (Widget)contextWidgets.removeFirst();
                 return this;
             default:
@@ -667,7 +674,7 @@
                 if (Constants.TEMPLATE_NS.equals(input.uri)) {
                     if ("case".equals(input.loc)) {
                         if (contextWidget.getValue().equals(input.attrs.getValue("id"))) {
-                            return nestedHandler;
+                            return skipHandler;
                         } else {
                             return nullHandler;
                         }