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/29 00:52:55 UTC

svn commit: r819764 - in /myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit: JSFAttr.java html/HtmlLinkRendererBase.java

Author: lu4242
Date: Mon Sep 28 22:52:55 2009
New Revision: 819764

URL: http://svn.apache.org/viewvc?rev=819764&view=rev
Log:
MYFACES-2284 Allow h:outputLink "fragment" property to append text to url after '#' (Thanks to Jakob Korherr for provide this patch)

Modified:
    myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java
    myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlLinkRendererBase.java

Modified: myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java?rev=819764&r1=819763&r2=819764&view=diff
==============================================================================
--- myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java (original)
+++ myfaces/shared/trunk_4.0.x/core/src/main/java/org/apache/myfaces/shared/renderkit/JSFAttr.java Mon Sep 28 22:52:55 2009
@@ -112,6 +112,9 @@
     String WARN_STYLE_ATTR             = "warnStyle";
     String TITLE_ATTR                  = "title";
     String TOOLTIP_ATTR                = "tooltip";
+    
+    // HtmlOutputLink Attributes
+    String FRAGMENT_ATTR               = "fragment";
 
     // GraphicImage attributes
     String NAME_ATTR                   = "name";

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=819764&r1=819763&r2=819764&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 Mon Sep 28 22:52:55 2009
@@ -34,6 +34,7 @@
 import javax.faces.component.behavior.ClientBehavior;
 import javax.faces.component.behavior.ClientBehaviorHolder;
 import javax.faces.component.html.HtmlCommandLink;
+import javax.faces.component.html.HtmlOutputLink;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
 import javax.faces.event.ActionEvent;
@@ -636,7 +637,8 @@
             //check if there is an anchor # in it
             int index = href.indexOf('#');
             String anchorString = null;
-            if (index > -1)
+            boolean isAnchorInHref = (index > -1);
+            if (isAnchorInHref)
             {
                 // remove anchor element and add it again after the parameter are encoded
                 anchorString = href.substring(index,href.length());
@@ -650,7 +652,21 @@
                                      writer.getCharacterEncoding());
                 href = hrefBuf.toString();
             }
-            if (index > -1)
+            // check for the fragement attribute
+            String fragmentAttr = null;
+            if (output instanceof HtmlOutputLink)
+            {
+                fragmentAttr = ((HtmlOutputLink) output).getFragment();
+            }
+            else
+            {
+                fragmentAttr = (String) output.getAttributes().get(JSFAttr.FRAGMENT_ATTR);
+            }
+            if (fragmentAttr != null && !"".equals(fragmentAttr)) 
+            {
+                href += "#" + fragmentAttr;
+            }
+            else if (isAnchorInHref)
             {
                 href += anchorString;
             }