You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ba...@apache.org on 2007/05/08 00:06:19 UTC

svn commit: r536003 - in /myfaces: core/branches/jsf12/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlCheckboxRendererTest.java shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java

Author: baranda
Date: Mon May  7 15:06:15 2007
New Revision: 536003

URL: http://svn.apache.org/viewvc?view=rev&rev=536003
Log:
Fixes MYFACES-1625 (In selectOneCheckbox, the style is not passed through)

Modified:
    myfaces/core/branches/jsf12/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlCheckboxRendererTest.java
    myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java

Modified: myfaces/core/branches/jsf12/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlCheckboxRendererTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/jsf12/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlCheckboxRendererTest.java?view=diff&rev=536003&r1=536002&r2=536003
==============================================================================
--- myfaces/core/branches/jsf12/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlCheckboxRendererTest.java (original)
+++ myfaces/core/branches/jsf12/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlCheckboxRendererTest.java Mon May  7 15:06:15 2007
@@ -20,6 +20,7 @@
 import org.apache.shale.test.mock.MockResponseWriter;
 
 import javax.faces.component.UISelectItems;
+import javax.faces.component.html.HtmlSelectBooleanCheckbox;
 import javax.faces.component.html.HtmlSelectManyCheckbox;
 import javax.faces.model.SelectItem;
 import java.io.StringWriter;
@@ -34,6 +35,7 @@
 {
     private MockResponseWriter writer ;
     private HtmlSelectManyCheckbox selectManyCheckbox;
+    private HtmlSelectBooleanCheckbox selectBooleanCheckbox;
 
     public HtmlCheckboxRendererTest(String name)
     {
@@ -45,6 +47,7 @@
         super.setUp();
 
         selectManyCheckbox = new HtmlSelectManyCheckbox();
+        selectBooleanCheckbox = new HtmlSelectBooleanCheckbox();
 
         writer = new MockResponseWriter(new StringWriter(), null, null);
         facesContext.setResponseWriter(writer);
@@ -54,6 +57,10 @@
                 selectManyCheckbox.getFamily(),
                 selectManyCheckbox.getRendererType(),
                 new HtmlCheckboxRenderer());
+        facesContext.getRenderKit().addRenderer(
+                selectBooleanCheckbox.getFamily(),
+                selectBooleanCheckbox.getRendererType(),
+                new HtmlCheckboxRenderer());
 
     }
 
@@ -64,7 +71,7 @@
         writer = null;
     }
 
-    public void testDefault() throws Exception
+    public void testSelectManyDefault() throws Exception
     {
         List items = new ArrayList();
         items.add(new SelectItem("mars"));
@@ -85,7 +92,7 @@
                 "</tr></table>", output);
     }
 
-    public void testRenderSelectItemWithoutValue() throws Exception
+    public void testSelectManySelectItemWithoutValue() throws Exception
     {
         List items = new ArrayList();
         items.add(new SelectItem(null, "mars"));
@@ -106,7 +113,7 @@
                 "</tr></table>", output);
     }
 
-    public void testRenderDisabledEnabledClass() throws Exception
+    public void testSelectManyDisabledEnabledClass() throws Exception
     {
         List items = new ArrayList();
         SelectItem disabledItem = new SelectItem("mars", "mars");
@@ -133,7 +140,7 @@
                 "</tr></table>", output);
     }
 
-    public void testRenderStylePassthru() throws Exception
+    public void testSelectManyStylePassthru() throws Exception
     {
         List items = new ArrayList();
         items.add(new SelectItem(null, "mars"));
@@ -154,5 +161,17 @@
                 "<td><input id=\"j_id0:0\" type=\"checkbox\" name=\"j_id0\"/><label for=\"j_id0:0\">&#160;mars</label></td>\t\t" +
                 "<td><input id=\"j_id0:1\" type=\"checkbox\" name=\"j_id0\"/><label for=\"j_id0:1\">&#160;jupiter</label></td>" +
                 "</tr></table>", output);
+    }
+
+    public void testSelectBooleanStylePassthru() throws Exception
+    {
+        selectBooleanCheckbox.setValue(true);
+        selectBooleanCheckbox.setStyle("color: red;");
+
+        selectBooleanCheckbox.encodeAll(facesContext);
+        facesContext.renderResponse();
+
+        String output = writer.getWriter().toString();
+        assertEquals("<input type=\"checkbox\" name=\"j_id0\" checked=\"checked\" value=\"true\" style=\"color: red;\"/>", output);
     }
 }

Modified: myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java?view=diff&rev=536003&r1=536002&r2=536003
==============================================================================
--- myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java (original)
+++ myfaces/shared/branches/3_0_0/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlCheckboxRendererBase.java Mon May  7 15:06:15 2007
@@ -250,8 +250,16 @@
             writer.writeAttribute(HTML.VALUE_ATTR, value, null);
         }
 
-        HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent,
+        if (uiComponent instanceof UISelectBoolean)
+        {
+            HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent,
+                HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED);
+        }
+        else
+        {
+            HtmlRendererUtils.renderHTMLAttributes(writer, uiComponent,
                 HTML.INPUT_PASSTHROUGH_ATTRIBUTES_WITHOUT_DISABLED_AND_STYLE);
+        }
         if (isDisabled(facesContext, uiComponent)) {
             writer.writeAttribute(HTML.DISABLED_ATTR, Boolean.TRUE, null);
         }