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";
+ }
+}