You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2009/09/30 07:07:14 UTC

svn commit: r820177 - in /myfaces: core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/ core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/ shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/

Author: lu4242
Date: Wed Sep 30 05:07:14 2009
New Revision: 820177

URL: http://svn.apache.org/viewvc?rev=820177&view=rev
Log:
MYFACES-2276 Update renderers that receive UIParameter to deal with "disable" param (Thanks to Jakob Korherr for provide this patch)

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlFormatRenderer.java
    myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlFormatRendererTest.java
    myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererTest.java
    myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
    myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlFormatRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlFormatRenderer.java?rev=820177&r1=820176&r2=820177&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlFormatRenderer.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/renderkit/html/HtmlFormatRenderer.java Wed Sep 30 05:07:14 2009
@@ -93,6 +93,12 @@
             {
                 if (child instanceof UIParameter)
                 {
+                    // check for the disable attribute (since 2.0)
+                    if (((UIParameter) child).isDisable())
+                    {
+                        // ignore this UIParameter and continue
+                        continue;
+                    }
                     argsList.add(((UIParameter)child).getValue());
                 }
             }

Modified: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlFormatRendererTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlFormatRendererTest.java?rev=820177&r1=820176&r2=820177&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlFormatRendererTest.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlFormatRendererTest.java Wed Sep 30 05:07:14 2009
@@ -20,6 +20,7 @@
 
 import java.io.StringWriter;
 
+import javax.faces.component.UIParameter;
 import javax.faces.component.html.HtmlOutputFormat;
 
 import junit.framework.Test;
@@ -85,4 +86,26 @@
             fail(HtmlCheckAttributesUtil.constructErrorMessage(attrs, writer.getWriter().toString()));
         }
     }
+    
+    /**
+     * If the disable attribute of a child UIParameter is true,
+     * he should be ignored.
+     * @throws Exception
+     */
+    public void testDisabledUIParameterNotRendered() throws Exception
+    {
+        UIParameter param1 = new UIParameter();
+        param1.setValue("value1");
+        param1.setDisable(true);
+        UIParameter param2 = new UIParameter();
+        param2.setValue("value2");
+        outputFormat.getChildren().add(param1);
+        outputFormat.getChildren().add(param2);
+        
+        outputFormat.setValue("prefix{0}-{1}suffix");
+        
+        outputFormat.encodeAll(facesContext);
+        String output = writer.getWriter().toString();
+        assertEquals("prefixvalue2-{1}suffix", output);
+    }
 }

Modified: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererTest.java?rev=820177&r1=820176&r2=820177&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererTest.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererTest.java Wed Sep 30 05:07:14 2009
@@ -21,6 +21,7 @@
 import java.io.StringWriter;
 
 import javax.faces.component.UIForm;
+import javax.faces.component.UIParameter;
 import javax.faces.component.behavior.AjaxBehavior;
 import javax.faces.component.html.HtmlCommandLink;
 import javax.faces.component.html.HtmlOutcomeTargetLink;
@@ -40,6 +41,7 @@
 import org.apache.shale.test.mock.MockRenderKitFactory;
 import org.apache.shale.test.mock.MockResponseWriter;
 import org.apache.shale.test.mock.MockServletContext;
+import org.easymock.EasyMock;
 
 /**
  * @author Bruno Aranda (latest modification by $Author$)
@@ -75,7 +77,7 @@
 
         form.getChildren().add(commandLink);
 
-        writer = new MockResponseWriter(new StringWriter(), null, null);
+        writer = new MockResponseWriter(new StringWriter(), null, "UTF-8");
         facesContext.setResponseWriter(writer);
         facesContext.getApplication().setNavigationHandler(new NavigationHandlerImpl());
 
@@ -302,4 +304,54 @@
         String output = writer.getWriter().toString();
         assertEquals("<a href=\"http://www.irian.at#fragment\"></a>", output);
     }
+    
+    /**
+     * If the disable attribute of a child UIParameter is true,
+     * he should be ignored.
+     * @throws Exception
+     */
+    public void testDisabledUIParameterNotRenderedCommandLink() throws Exception
+    {
+        UIParameter param1 = new UIParameter();
+        param1.setName("param1");
+        param1.setValue("value1");
+        param1.setDisable(true);
+        UIParameter param2 = new UIParameter();
+        param2.setName("param2");
+        param2.setValue("value2");
+        commandLink.getChildren().add(param1);
+        commandLink.getChildren().add(param2);
+        
+        commandLink.encodeAll(facesContext);
+        String output = writer.getWriter().toString();
+        assertFalse(output.contains("param1"));
+        assertFalse(output.contains("value1"));
+        assertTrue(output.contains("param2"));
+        assertTrue(output.contains("value2"));
+    }
+    
+    /**
+     * If the disable attribute of a child UIParameter is true,
+     * he should be ignored.
+     * @throws Exception
+     */
+    public void testDisabledUIParameterNotRenderedOutputLink() throws Exception
+    {
+        UIParameter param1 = new UIParameter();
+        param1.setName("param1");
+        param1.setValue("value1");
+        param1.setDisable(true);
+        UIParameter param2 = new UIParameter();
+        param2.setName("param2");
+        param2.setValue("value2");
+        outputLink.getChildren().add(param1);
+        outputLink.getChildren().add(param2);
+        
+        outputLink.encodeAll(facesContext);
+        String output = writer.getWriter().toString();
+        assertFalse(output.contains("param1"));
+        assertFalse(output.contains("value1"));
+        assertTrue(output.contains("param2"));
+        assertTrue(output.contains("value2"));
+    }
 }

Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java?rev=820177&r1=820176&r2=820177&view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java (original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java Wed Sep 30 05:07:14 2009
@@ -476,6 +476,13 @@
 
             UIComponent child = (UIComponent) it.next();
             if (child instanceof UIParameter) {
+                // check for the disable attribute (since 2.0)
+                if (((UIParameter) child).isDisable())
+                {
+                    // ignore this UIParameter and continue
+                    continue;
+                }
+                
                 String name = ((UIParameter) child).getName();
 
                 if (name == null) {
@@ -591,6 +598,12 @@
             UIComponent child = (UIComponent)it.next();
             if (child instanceof UIParameter)
             {
+                // check for the disable attribute (since 2.0)
+                if (((UIParameter) child).isDisable())
+                {
+                    // ignore this UIParameter and continue
+                    continue;
+                }
                 String name = ((UIParameter)child).getName();
                 Object value = ((UIParameter)child).getValue();
                 addParameterToHref(name, value, hrefBuf, firstParameter, charEncoding, strictXhtmlLinks);

Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java?rev=820177&r1=820176&r2=820177&view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java (original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java Wed Sep 30 05:07:14 2009
@@ -1800,6 +1800,12 @@
             UIComponent child = (UIComponent)it.next();
             if (child instanceof UIParameter)
             {
+                // check for the disable attribute (since 2.0)
+                if (((UIParameter) child).isDisable())
+                {
+                    // ignore this UIParameter and continue
+                    continue;
+                }
                 String name = ((UIParameter)child).getName();
                 Object value = ((UIParameter)child).getValue();
                 if (parameters == null)
@@ -2213,7 +2219,9 @@
             UIComponent target = it.next();
             if (!(target instanceof UIParameter)) continue;
             UIParameter param = (UIParameter) target;
-            if (param.isRendered() && param.getValue() != null) {
+            if (param.isRendered() && param.getValue() != null
+                    && !param.isDisable()) 
+            {
                 String name = param.getName();
                 Object value = param.getValue();
                 if (value instanceof String) {