Author: lukaszlenart
Date: Mon Jan 21 21:47:13 2013
New Revision: 1436637

URL: http://svn.apache.org/viewvc?rev=1436637&view=rev
Log:
WW-3920 adds support for scripting events

Modified:
    
struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java
    
struts/struts2/trunk/plugins/javatemplates/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java

Modified: 
struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java?rev=1436637&r1=1436636&r2=1436637&view=diff
==============================================================================
--- 
struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java
 (original)
+++ 
struts/struts2/trunk/plugins/javatemplates/src/main/java/org/apache/struts2/views/java/simple/AnchorHandler.java
 Mon Jan 21 21:47:13 2013
@@ -20,36 +20,40 @@
  */
 package org.apache.struts2.views.java.simple;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.struts2.views.java.Attributes;
 import org.apache.struts2.views.java.TagGenerator;
-import org.apache.commons.lang3.StringUtils;
 
 import java.io.IOException;
 import java.util.Map;
 
 public class AnchorHandler extends AbstractTagHandler implements TagGenerator {
+
     public void generate() throws IOException {
-        //all rendering must happend at the end of the tag, so we can support 
nested params
+        Map<String, Object> params = context.getParameters();
+
+        Attributes attrs = new Attributes();
+        attrs.addIfExists("name", params.get("name"))
+                .addIfExists("id", params.get("id"))
+                .addIfExists("class", params.get("cssClass"))
+                .addIfExists("style", params.get("cssStyle"))
+                .addIfExists("href", params.get("href"), false)
+                .addIfExists("title", params.get("title"))
+                .addIfExists("tabindex", params.get("tabindex"));
+        start("a", attrs);
     }
 
     public static class CloseHandler extends AbstractTagHandler implements 
TagGenerator {
+
         public void generate() throws IOException {
             Map<String, Object> params = context.getParameters();
-
-            Attributes attrs = new Attributes();
-
-            attrs.addIfExists("name", params.get("name"))
-                    .addIfExists("id", params.get("id"))
-                    .addIfExists("class", params.get("cssClass"))
-                    .addIfExists("style", params.get("cssStyle"))
-                    .addIfExists("href", params.get("href"), false)
-                    .addIfExists("title", params.get("title"))
-                    .addIfExists("tabindex", params.get("tabindex"));
-            start("a", attrs);
             String body = (String) params.get("body");
-            if (StringUtils.isNotEmpty(body))
+            if (StringUtils.isNotEmpty(body)) {
                 characters(body, false);
+            }
             end("a");
         }
+
     }
+
 }

Modified: 
struts/struts2/trunk/plugins/javatemplates/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/javatemplates/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java?rev=1436637&r1=1436636&r2=1436637&view=diff
==============================================================================
--- 
struts/struts2/trunk/plugins/javatemplates/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java
 (original)
+++ 
struts/struts2/trunk/plugins/javatemplates/src/test/java/org/apache/struts2/views/java/simple/AnchorTest.java
 Mon Jan 21 21:47:13 2013
@@ -46,6 +46,28 @@ public class AnchorTest extends Abstract
         assertEquals(expected, output);
     }
 
+    public void testRenderScriptingEvents() {
+        tag.setName("name_");
+        tag.setOnclick("alert('click')");
+        tag.setOnchange("alert('change)");
+        tag.setOnfocus("alert('focus')");
+        tag.setOnselect("alert('select')");
+        tag.setOndblclick("alert('dbclick')");
+        tag.setOnkeydown("alert('keydown')");
+        tag.setOnkeypress("alert('keypress')");
+        tag.setHref("http://sometest.com?ab=10";);
+
+        tag.evaluateParams();
+        map.putAll(tag.getParameters());
+        theme.renderTag(getTagName(), context);
+        theme.renderTag(getTagName() + "-close", context);
+        String output = writer.getBuffer().toString();
+        String expected = "<a name=\"name_\" id=\"name_\" 
href=\"http://sometest.com?ab=10\"; onclick=\"alert('click')\" " +
+                "ondblclick=\"alert('dbclick')\" onfocus=\"alert('focus')\" 
onkeypress=\"alert('keypress')\" " +
+                "onkeydown=\"alert('keydown')\" onselect=\"alert('select')\" 
onchange=\"alert('change)\"></a>";
+        assertEquals(expected, output);
+    }
+
     @Override
     protected void setUp() throws Exception {
         super.setUp();


Reply via email to