You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2006/06/28 15:25:26 UTC

svn commit: r417751 - /myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/LinkRenderer.java

Author: bommel
Date: Wed Jun 28 06:25:26 2006
New Revision: 417751

URL: http://svn.apache.org/viewvc?rev=417751&view=rev
Log:
tc:link attribute link supports f:param TOBAGO-78

Modified:
    myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/LinkRenderer.java

Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/LinkRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/LinkRenderer.java?rev=417751&r1=417750&r2=417751&view=diff
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/LinkRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/LinkRenderer.java Wed Jun 28 06:25:26 2006
@@ -40,9 +40,11 @@
 import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
 
 import javax.faces.component.UIComponent;
+import javax.faces.component.UIParameter;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
 import java.io.IOException;
+import java.net.URLDecoder;
 
 public class LinkRenderer extends CommandRendererBase{
 
@@ -61,7 +63,30 @@
             + " label = " + component.getAttributes().get(ATTR_LABEL));
         action = "";
       }
-      href = HtmlUtils.generateUrl(facesContext, action);
+
+      action = HtmlUtils.generateUrl(facesContext, action);
+      StringBuffer sb = new StringBuffer(action);
+
+      boolean questionMark = action.contains("?");
+      for (Object o : component.getChildren()) {
+        UIComponent child = (UIComponent) o;
+        if (child instanceof UIParameter) {
+          UIParameter parameter = (UIParameter) child;
+          if (questionMark) {
+            sb.append("&");
+          } else {
+            sb.append("?");
+            questionMark = true;
+          }
+          sb.append(parameter.getName());
+          sb.append("=");
+          Object value = parameter.getValue();
+          // TODO encoding
+          sb.append(value!=null?URLDecoder.decode(value.toString()):null);
+        }
+      }
+      href = sb.toString();
+
     } else  if (component.getAttributes().get(ATTR_ACTION_ONCLICK) != null) {
       onclick = (String) component.getAttributes().get(ATTR_ACTION_ONCLICK);
       href = "#";