Author: michiel
Date: 2010-02-09 15:02:25 +0100 (Tue, 09 Feb 2010)
New Revision: 40929

Modified:
   
mmbase/trunk/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/BooleanHandler.java
Log:
checkboxes where not working properly   MMB-1928

Modified: 
mmbase/trunk/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/BooleanHandler.java
===================================================================
--- 
mmbase/trunk/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/BooleanHandler.java
 2010-02-09 14:00:48 UTC (rev 40928)
+++ 
mmbase/trunk/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/BooleanHandler.java
 2010-02-09 14:02:25 UTC (rev 40929)
@@ -38,7 +38,8 @@
     /**
      * @see TypeHandler#htmlInput(Node, Field, boolean)
      */
-    @Override public String htmlInput(Node node, Field field, boolean search) 
throws JspTagException {
+    @Override
+    public String htmlInput(Node node, Field field, boolean search) throws 
JspTagException {
         EnumHandler eh = getEnumHandler(node, field);
         if (eh != null) {
             return eh.htmlInput(node, field, search);
@@ -47,8 +48,13 @@
             buffer.append("<input type=\"checkbox\" class=\"");
             buffer.append(getClasses(node, field));
             buffer.append("\" 
name=\"").append(prefix(field.getName())).append("\" ");
-            
buffer.append("id=\"").append(prefixID(field.getName())).append("\" />");
-
+            
buffer.append("id=\"").append(prefixID(field.getName())).append("\" ");
+            Object value = getFieldValue(node, field, ! search);
+            log.debug("Found " + value);
+            if (value.equals(Boolean.TRUE)) {
+                buffer.append("checked=\"checked\"");
+            }
+            buffer.append(" />");
             return buffer.toString();
         }
 
@@ -57,7 +63,8 @@
     /**
      * @see TypeHandler#useHtmlInput(Node, Field)
      */
-    @Override public boolean useHtmlInput(Node node, Field field) throws 
JspTagException {
+    @Override
+    public boolean useHtmlInput(Node node, Field field) throws JspTagException 
{
         log.debug("using html-input");
         EnumHandler eh = getEnumHandler(node, field);
         if (eh != null) {
@@ -69,7 +76,8 @@
     /**
      * @see TypeHandler#whereHtmlInput(Field)
      */
-    @Override public String whereHtmlInput(Field field) throws JspTagException 
{
+    @Override
+    public String whereHtmlInput(Field field) throws JspTagException {
         EnumHandler eh = getEnumHandler(null, field);
         if (eh != null) {
             return eh.whereHtmlInput(field);
@@ -77,7 +85,8 @@
         return super.whereHtmlInput(field);
     }
 
-    @Override public Constraint whereHtmlInput(Field field, Query query) 
throws JspTagException {
+    @Override
+    public Constraint whereHtmlInput(Field field, Query query) throws 
JspTagException {
         EnumHandler eh = getEnumHandler(null, field);
         if (eh != null) {
             return eh.whereHtmlInput(field, query);
@@ -85,9 +94,20 @@
         return super.whereHtmlInput(field, query);
     }
 
-    @Override protected Object cast(Object value, Node node, Field field) {
-        if (value == null || "".equals(value)) return Boolean.FALSE;
-        return  super.cast(value, node, field);
+    @Override
+    protected Object cast(Object value, Node node, Field field) {
+         if (value == null || "".equals(value)) return Boolean.FALSE;
+         return  super.cast(value, node, field);
+
+    @Override
+    public Object getFieldValue(Node node, Field field) throws JspTagException 
{
+        Object v = super.getFieldValue(node, field);
+        EnumHandler eh = getEnumHandler(null, field);
+        if (eh == null) {
+            // check-boxes.
+            v = "on".equals(v);
+        }
+        return v;
     }
 
 }

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to