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) {