Author: musachy
Date: Mon Dec 15 11:17:26 2008
New Revision: 726775

URL: http://svn.apache.org/viewvc?rev=726775&view=rev
Log:
Add Checkbox handler

Added:
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/CheckboxHandler.java
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/CheckboxTest.java
Modified:
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java
    
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java

Added: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/CheckboxHandler.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/CheckboxHandler.java?rev=726775&view=auto
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/CheckboxHandler.java
 (added)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/CheckboxHandler.java
 Mon Dec 15 11:17:26 2008
@@ -0,0 +1,46 @@
+package org.apache.struts2.views.java.simple;
+
+import org.apache.struts2.views.java.TagGenerator;
+import org.apache.struts2.views.java.Attributes;
+
+import java.io.IOException;
+import java.util.Map;
+
+import com.opensymphony.xwork2.util.TextUtils;
+
+public class CheckboxHandler extends AbstractTagHandler implements 
TagGenerator {
+    @Override
+    public void generate() throws IOException {
+        Map<String, Object> params = context.getParameters();
+        Attributes attrs = new Attributes();
+
+        String fieldValue = (String) params.get("fieldValue");
+        String id = (String) params.get("id");
+        String name = (String) params.get("name");
+        Object disabled = params.get("disabled");
+
+        attrs.add("type", "checkbox")
+                .add("name", name)
+                .add("value", fieldValue)
+                .addIfTrue("checked", params.get("nameValue"))
+                .addIfTrue("readonly", params.get("readonly"))
+                .addIfTrue("disabled", disabled)
+                .addIfExists("tabindex", params.get("tabindex"))
+                .addIfExists("id", id)
+                .addIfExists("class", params.get("cssClass"))
+                .addIfExists("style", params.get("cssStyle"))
+                .addIfExists("title", params.get("title"));
+        start("input", attrs);
+        end("input");
+
+        //hidden input
+        attrs = new Attributes();
+        attrs.add("type", "hidden")
+                .add("id", "__checkbox_" + TextUtils.htmlEncode(id))
+                .add("name", "__checkbox_" + TextUtils.htmlEncode(name))
+                .add("value", "__checkbox_" + TextUtils.htmlEncode(fieldValue))
+                .addIfTrue("disabled", disabled);
+        start("input", attrs);
+        end("input");
+    }
+}

Modified: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java?rev=726775&r1=726774&r2=726775&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java
 (original)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SelectHandler.java
 Mon Dec 15 11:17:26 2008
@@ -39,14 +39,6 @@
 import com.opensymphony.xwork2.util.TextUtils;
 
 public class SelectHandler extends AbstractTagHandler implements TagGenerator {
-    private Writer writer;
-
-    @Override
-    public void setup(TemplateRenderingContext context) {
-        super.setup(context);
-        this.writer = context.getWriter();
-    }
-
     public void generate() throws IOException {
         Map<String, Object> params = context.getParameters();
         Attributes a = new Attributes();

Modified: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java?rev=726775&r1=726774&r2=726775&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java
 (original)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/main/java/org/apache/struts2/views/java/simple/SimpleTheme.java
 Mon Dec 15 11:17:26 2008
@@ -38,6 +38,7 @@
             put("select", new FactoryList(SelectHandler.class, 
ScriptingEventsHandler.class, CommonAttributesHandler.class));
             put("form", new FactoryList(FormHandler.class, 
ScriptingEventsHandler.class, CommonAttributesHandler.class));
             put("a", new FactoryList(AnchorHandler.class, 
ScriptingEventsHandler.class, CommonAttributesHandler.class));
+            put("checkbox", new FactoryList(CheckboxHandler.class, 
ScriptingEventsHandler.class, CommonAttributesHandler.class));
             put("actionerror", new FactoryList(ActionErrorHandler.class));
             put("empty", new FactoryList(EmptyHandler.class));
         }});

Added: 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/CheckboxTest.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/CheckboxTest.java?rev=726775&view=auto
==============================================================================
--- 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/CheckboxTest.java
 (added)
+++ 
struts/sandbox/trunk/struts2-javatemplates-plugin/src/test/java/org/apache/struts2/views/java/simple/CheckboxTest.java
 Mon Dec 15 11:17:26 2008
@@ -0,0 +1,82 @@
+/*
+ * $Id: Bean.java 726216 2008-12-13 14:58:16Z musachy $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.struts2.views.java.simple;
+
+import org.apache.struts2.components.Checkbox;
+import org.apache.struts2.components.UIBean;
+
+public class CheckboxTest extends AbstractCommonAttributesTest {
+    private Checkbox tag;
+
+     public void testRenderCheckbox() {
+        tag.setName("name_");
+        tag.setDisabled("true");
+        tag.setTabindex("1");
+        tag.setId("id_");
+        tag.setCssClass("class");
+        tag.setCssStyle("style");
+        tag.setTitle("title");
+        tag.setFieldValue("xyz");
+
+        tag.evaluateParams();
+        map.putAll(tag.getParameters());
+        theme.renderTag(getTagName(), context);
+        String output = writer.getBuffer().toString();
+        String expected = s("<input type='checkbox' name='name_' value='xyz' 
tabindex='1' id='id_' class='class' style='style' title='title'></input><input 
type='hidden' id='__checkbox_id_' name='__checkbox_name_' 
value='__checkbox_xyz'></input>");
+        assertEquals(expected, output);
+    }
+
+    public void testRenderCheckboxWithNameValue() {
+        tag.setName("name_");
+        tag.setValue("%{someValue}");
+        tag.setDisabled("true");
+
+        tag.evaluateParams();
+        map.putAll(tag.getParameters());
+        theme.renderTag(getTagName(), context);
+        String output = writer.getBuffer().toString();
+        String expected = s("<input type='checkbox' name='name_' value='true' 
checked='checked' id='name_'></input><input type='hidden' id='__checkbox_name_' 
name='__checkbox_name_' value='__checkbox_true'></input>");
+        assertEquals(expected, output);
+    }
+
+    @Override
+    protected void setUpStack() {
+        super.setUpStack();
+
+        expectFind("someValue", Boolean.class, true);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        tag = new Checkbox(stack, request, response);
+    }
+    
+    @Override
+    protected UIBean getUIBean() {
+        return tag;
+    }
+
+    @Override
+    protected String getTagName() {
+        return "checkbox";
+    }
+}


Reply via email to