Author: gvanmatre Date: Fri Oct 14 21:22:19 2005 New Revision: 321288 URL: http://svn.apache.org/viewcvs?rev=321288&view=rev Log: Modified menu builders to remove any child HTML "select" nodes that are not an "option" node.
Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectManyMenuBuilder.java struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectOneMenuBuilder.java Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectManyMenuBuilder.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectManyMenuBuilder.java?rev=321288&r1=321287&r2=321288&view=diff ============================================================================== --- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectManyMenuBuilder.java (original) +++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectManyMenuBuilder.java Fri Oct 14 21:22:19 2005 @@ -18,8 +18,13 @@ package org.apache.shale.clay.parser.builder; +import java.util.ArrayList; +import java.util.Iterator; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.shale.clay.config.beans.ComponentBean; +import org.apache.shale.clay.config.beans.ElementBean; import org.apache.shale.clay.parser.Node; /** @@ -73,5 +78,26 @@ return true; } - + + /** + * <p>Remove any child nodes that are not "option" nodes.</p> + */ + protected void encodeBegin(Node node, ElementBean target, ComponentBean root) { + + //remove any children that are not option nodes + ArrayList delList = new ArrayList(); + Iterator ci = node.getChildren().iterator(); + while (ci.hasNext()) { + Node child = (Node) ci.next(); + if (child.getName() == null || !child.getName().equalsIgnoreCase("option")) + delList.add(child); + } + for (int i = 0; i < delList.size(); i++) + node.getChildren().remove(delList.get(i)); + delList.clear(); + + super.encodeBegin(node, target, root); + } + + } Modified: struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectOneMenuBuilder.java URL: http://svn.apache.org/viewcvs/struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectOneMenuBuilder.java?rev=321288&r1=321287&r2=321288&view=diff ============================================================================== --- struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectOneMenuBuilder.java (original) +++ struts/shale/trunk/clay-plugin/src/java/org/apache/shale/clay/parser/builder/SelectOneMenuBuilder.java Fri Oct 14 21:22:19 2005 @@ -18,8 +18,13 @@ package org.apache.shale.clay.parser.builder; +import java.util.ArrayList; +import java.util.Iterator; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.shale.clay.config.beans.ComponentBean; +import org.apache.shale.clay.config.beans.ElementBean; import org.apache.shale.clay.parser.Node; /** @@ -72,6 +77,27 @@ */ public boolean isChildrenAllowed() { return true; + } + + + /** + * <p>Remove any child nodes that are not "option" nodes.</p> + */ + protected void encodeBegin(Node node, ElementBean target, ComponentBean root) { + + //remove any children that are not option nodes + ArrayList delList = new ArrayList(); + Iterator ci = node.getChildren().iterator(); + while (ci.hasNext()) { + Node child = (Node) ci.next(); + if (child.getName() == null || !child.getName().equalsIgnoreCase("option")) + delList.add(child); + } + for (int i = 0; i < delList.size(); i++) + node.getChildren().remove(delList.get(i)); + delList.clear(); + + super.encodeBegin(node, target, root); } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]