Author: husted
Date: Wed Aug 23 17:16:35 2006
New Revision: 434265

URL: http://svn.apache.org/viewvc?rev=434265&view=rev
Log:
WW-1392 Bring over WW2.2.3 TLD. Review commit history. Add missing attribute 
(doubleAccesskey) and missing tag (debug). (Next: Update with example code.) 
Also change Velocity directive prefix from "s-" to "s", since the using special 
character wasn't working.

Added:
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Debug.java
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/DebugTag.java
Modified:
    struts/struts2/trunk/apps/showcase/src/main/webapp/tags/ui/example.vm
    
struts/struts2/trunk/apps/showcase/src/main/webapp/tags/ui/exampleSubmited.vm
    
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/components/AbstractDirective.java
    struts/struts2/trunk/core/src/main/resources/META-INF/struts-tags.tld

Modified: struts/struts2/trunk/apps/showcase/src/main/webapp/tags/ui/example.vm
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/src/main/webapp/tags/ui/example.vm?rev=434265&r1=434264&r2=434265&view=diff
==============================================================================
--- struts/struts2/trunk/apps/showcase/src/main/webapp/tags/ui/example.vm 
(original)
+++ struts/struts2/trunk/apps/showcase/src/main/webapp/tags/ui/example.vm Wed 
Aug 23 17:16:35 2006
@@ -1,32 +1,32 @@
 <html>
 <head>
     <title>UI Tags Example</title>
-    #safhead()
+    #shead()
 </head>
 
 <body>
 
-#safurl ("id=url" "value=index.jsp")
+#surl ("id=url" "value=index.jsp")
 <a href="${url}">Back to index.jsp</a>!
 
 
-#safform ("action=exampleSubmitVelocity" "method=post" 
"enctype=multipart/form-data")
-    #saftextfield ("label=Name" "name=name")
-    #safdatepicker ("label=Birthday" "name=birthday")
-    #saftextarea ("label=Biograph" "name=bio" "cols=20" "rows=3")
-    #safselect ("label=Favorite Color" "list={'Red', 'Blue', 'Green'}" 
"name=favoriteColor" "emptyOption=true" "headerKey=None" "headerValue=None")
-    #safselect ("label=Favourite Language" "list=favouriteLanguages" 
"name=favouriteLanguage" "listKey=key" "listValue=description" 
"emptyOption=true" "headerKey=None" "headerValue=None")
-    #safcheckboxlist ("label=Friends" "list={'Patrick', 'Jason', 'Jay', 
'Toby', 'Rene'}" "name=friends")
-    #safcheckbox ("label=Age 18+" "name=legalAge")
-    #safdoubleselect ("label=State" "name=region" "list={'North', 'South'}" 
"value='North'" "doubleValue='Florida'" "doubleList=top == 'North' ? {'Oregon', 
'Washington'} : {'Texas', 'Florida'}" "doubleName=state" "headerKey=-1" 
"headerValue=---------- Please Select ----------" "emptyOption=true" )
-    #safdoubleselect ("label=Favourite Vehical" "name=favouriteVehicalType" 
"list=vehicalTypeList" "listKey=key" "listValue=description" 
"value='MotorcycleKey'" "doubleValue='YamahaKey'" 
"doubleList=vehicalSpecificList" "doubleListKey=key" 
"doubleListValue=description" "doubleName=favouriteVehicalSpecific" 
"headerKey=-1" "headerValue=---------- Please Select ----------" 
"emptyOption=true" )
-    #saffile ("label=Picture" "name=picture")
-    #safoptiontransferselect ("label=Favourite Cartoons Characters" 
"name=leftSideCartoonCharacters" "leftTitle=Left Title" "rightTitle=Right 
Title" "list={'Popeye', 'He-Man', 'Spiderman'}" "multiple=true" 
"headerKey=headerKey" "headerValue=--- Please Select ---" "emptyOption=true" 
"doubleList={'Superman', 'Mickey Mouse', 'Donald Duck'}" 
"doubleName=rightSideCartoonCharacters" "doubleHeaderKey=doubleHeaderKey" 
"doubleHeaderValue=--- Please Select ---" "doubleEmptyOption=true" 
"doubleMultiple=true" )
-    #safsubmit()
-    #safreset()
+#sform ("action=exampleSubmitVelocity" "method=post" 
"enctype=multipart/form-data")
+    #stextfield ("label=Name" "name=name")
+    #sdatepicker ("label=Birthday" "name=birthday")
+    #stextarea ("label=Biograph" "name=bio" "cols=20" "rows=3")
+    #sselect ("label=Favorite Color" "list={'Red', 'Blue', 'Green'}" 
"name=favoriteColor" "emptyOption=true" "headerKey=None" "headerValue=None")
+    #sselect ("label=Favourite Language" "list=favouriteLanguages" 
"name=favouriteLanguage" "listKey=key" "listValue=description" 
"emptyOption=true" "headerKey=None" "headerValue=None")
+    #scheckboxlist ("label=Friends" "list={'Patrick', 'Jason', 'Jay', 'Toby', 
'Rene'}" "name=friends")
+    #scheckbox ("label=Age 18+" "name=legalAge")
+    #sdoubleselect ("label=State" "name=region" "list={'North', 'South'}" 
"value='North'" "doubleValue='Florida'" "doubleList=top == 'North' ? {'Oregon', 
'Washington'} : {'Texas', 'Florida'}" "doubleName=state" "headerKey=-1" 
"headerValue=---------- Please Select ----------" "emptyOption=true" )
+    #sdoubleselect ("label=Favourite Vehical" "name=favouriteVehicalType" 
"list=vehicalTypeList" "listKey=key" "listValue=description" 
"value='MotorcycleKey'" "doubleValue='YamahaKey'" 
"doubleList=vehicalSpecificList" "doubleListKey=key" 
"doubleListValue=description" "doubleName=favouriteVehicalSpecific" 
"headerKey=-1" "headerValue=---------- Please Select ----------" 
"emptyOption=true" )
+    #sfile ("label=Picture" "name=picture")
+    #soptiontransferselect ("label=Favourite Cartoons Characters" 
"name=leftSideCartoonCharacters" "leftTitle=Left Title" "rightTitle=Right 
Title" "list={'Popeye', 'He-Man', 'Spiderman'}" "multiple=true" 
"headerKey=headerKey" "headerValue=--- Please Select ---" "emptyOption=true" 
"doubleList={'Superman', 'Mickey Mouse', 'Donald Duck'}" 
"doubleName=rightSideCartoonCharacters" "doubleHeaderKey=doubleHeaderKey" 
"doubleHeaderValue=--- Please Select ---" "doubleEmptyOption=true" 
"doubleMultiple=true" )
+    #ssubmit()
+    #sreset()
 #end
 
-#safa("href=${url}")Back to index.jsp#end
+#sa("href=${url}")Back to index.jsp#end
 
 </body>
 </html>

Modified: 
struts/struts2/trunk/apps/showcase/src/main/webapp/tags/ui/exampleSubmited.vm
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/apps/showcase/src/main/webapp/tags/ui/exampleSubmited.vm?rev=434265&r1=434264&r2=434265&view=diff
==============================================================================
--- 
struts/struts2/trunk/apps/showcase/src/main/webapp/tags/ui/exampleSubmited.vm 
(original)
+++ 
struts/struts2/trunk/apps/showcase/src/main/webapp/tags/ui/exampleSubmited.vm 
Wed Aug 23 17:16:35 2006
@@ -6,18 +6,18 @@
 
 <h1>Example Submitted</h1>
 <table>
-       #saflabel ("label=Name" "name=name")
-       #saflabel ("label=Birthday" "name=birthday")
-       #saflabel ("label=Biography" "name=bio")
-       #saflabel ("label=Favourite Color" "name=favouriteColor")
-       #saflabel ("label=Friends" "name=friends")
-       #saflabel ("label=Legal Age" "name=legalAge")
-       #saflabel ("label=Region" "name=region")
-       #saflabel ("label=State" "name=state")
-       #saflabel ("label=Picture" "name=picture")
-       #saflabel ("label=Favourite Language" "name=favouriteLanguage")
-       #saflabel ("label=Favourite Vehical Type" "name=favouriteVehicalType")
-       #saflabel ("label=Favourite Vehical Specific" 
"name=favouriteVehicalSpecific")
+       #slabel ("label=Name" "name=name")
+       #slabel ("label=Birthday" "name=birthday")
+       #slabel ("label=Biography" "name=bio")
+       #slabel ("label=Favourite Color" "name=favouriteColor")
+       #slabel ("label=Friends" "name=friends")
+       #slabel ("label=Legal Age" "name=legalAge")
+       #slabel ("label=Region" "name=region")
+       #slabel ("label=State" "name=state")
+       #slabel ("label=Picture" "name=picture")
+       #slabel ("label=Favourite Language" "name=favouriteLanguage")
+       #slabel ("label=Favourite Vehical Type" "name=favouriteVehicalType")
+       #slabel ("label=Favourite Vehical Specific" 
"name=favouriteVehicalSpecific")
        <tr>
                <td>Favourite Cartoon Characters (Left):</td>
                <td>
@@ -40,8 +40,8 @@
        </tr>
 </table>
 
-#safurl ("id=url" "value=index.jsp")
-#safa("href=${url}")Back to index.jsp#end
+#surl ("id=url" "value=index.jsp")
+#sa("href=${url}")Back to index.jsp#end
 
 </body>
 </html>

Added: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Debug.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Debug.java?rev=434265&view=auto
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Debug.java
 (added)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/components/Debug.java
 Wed Aug 23 17:16:35 2006
@@ -0,0 +1,94 @@
+package org.apache.struts2.components;
+
+import com.opensymphony.xwork2.util.OgnlUtil;
+import com.opensymphony.xwork2.util.OgnlValueStack;
+import org.apache.struts2.StrutsException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <!-- START SNIPPET: javadoc -->
+ * <p>Renders an debug tag.</P>
+ *
+ * The debug information contain mostly stack information:
+ * <ul>
+ *    <li>Value Stack Contents</li>
+ *    <li>Stack Context</li>
+ * </ul>
+ * <!-- END SNIPPET: javadoc -->
+ *
+ * <p/> <b>Examples</b>
+ *
+ * <pre>
+ * <!-- START SNIPPET: example -->
+ * &lt;ww:debug/&gt;
+ * <!-- END SNIPPET: example -->
+ * </pre>
+ *
+ * @s.tag name="debug" tld-body-content="JSP" 
tld-tag-class="com.opensymphony.webwork.views.jsp.ui.DebugTag"
+ * description="Render debug tag"
+  */
+public class Debug extends UIBean {
+    public static final String TEMPLATE = "debug";
+
+    public Debug(OgnlValueStack stack, HttpServletRequest request, 
HttpServletResponse response) {
+        super(stack, request, response);
+    }
+
+    protected String getDefaultTemplate() {
+        return TEMPLATE;
+    }
+
+    public boolean start(Writer writer) {
+        boolean result = super.start(writer);
+
+        OgnlValueStack stack = getStack();
+        Iterator iter = stack.getRoot().iterator();
+        List stackValues = new ArrayList(stack.getRoot().size());
+        while (iter.hasNext()) {
+            Object o = iter.next();
+            Map values;
+            try {
+                values = OgnlUtil.getBeanMap(o);
+            } catch (Exception e) {
+                throw new StrutsException("Caught an exception while getting 
the property values of " + o, e);
+            }
+            stackValues.add(new DebugMapEntry(o.getClass().getName(), values));
+        }
+
+        addParameter("stackValues", stackValues);
+
+        return result;
+    }
+
+    private class DebugMapEntry implements Map.Entry {
+        private Object key;
+        private Object value;
+
+        DebugMapEntry(Object key, Object value) {
+            this.key = key;
+            this.value = value;
+        }
+
+        public Object getKey() {
+            return key;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object setValue(Object newVal) {
+            Object oldVal = value;
+            value = newVal;
+            return oldVal;
+        }
+    }
+
+}

Added: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/DebugTag.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/DebugTag.java?rev=434265&view=auto
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/DebugTag.java
 (added)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/jsp/ui/DebugTag.java
 Wed Aug 23 17:16:35 2006
@@ -0,0 +1,16 @@
+package org.apache.struts2.views.jsp.ui;
+
+import org.apache.struts2.components.Component;
+import org.apache.struts2.components.Debug;
+import com.opensymphony.xwork2.util.OgnlValueStack;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class DebugTag extends AbstractUITag {
+
+    public Component getBean(OgnlValueStack stack, HttpServletRequest req, 
HttpServletResponse res) {
+        return new Debug(stack, req, res);
+    }
+
+}

Modified: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/components/AbstractDirective.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/components/AbstractDirective.java?rev=434265&r1=434264&r2=434265&view=diff
==============================================================================
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/components/AbstractDirective.java
 (original)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/components/AbstractDirective.java
 Wed Aug 23 17:16:35 2006
@@ -36,7 +36,7 @@
 
 public abstract class AbstractDirective extends Directive {
     public String getName() {
-        return "s-" + getBeanName();
+        return "s" + getBeanName();
     }
 
     public abstract String getBeanName();


Reply via email to