* [EMAIL PROTECTED]:
> Author: almaw
> Date: Mon Apr  2 10:52:44 2007
> New Revision: 524856
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=524856
> Log:
> Add contextRelative option to external links.
> 
> Modified:
>     
> incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/markup/html/link/ExternalLink.java
> 
> Modified: 
> incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/markup/html/link/ExternalLink.java
> URL: 
> http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/markup/html/link/ExternalLink.java?view=diff&rev=524856&r1=524855&r2=524856
> ==============================================================================
> --- 
> incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/markup/html/link/ExternalLink.java
>  (original)
> +++ 
> incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/markup/html/link/ExternalLink.java
>  Mon Apr  2 10:52:44 2007
> @@ -150,6 +153,30 @@
>                       if (hrefValue != null)
>                       {
>                               String url = hrefValue.toString();
> +                             
> +                             if (contextRelative)
> +                             {
> +                                     if (url.length() > 0 && url.charAt(0) 
> == '/')
> +                                     {
> +                                             url = url.substring(1);
> +                                     }
> +                                     PrependingStringBuffer prepender = new 
> PrependingStringBuffer(url.toString());
> +                                     String relativeUrl = 
> getRequest().getRelativeURL();
> +                                     
> +                                     for (int i = 0; i < 
> relativeUrl.length(); i++)
> +                                     {
> +                                             if (relativeUrl.charAt(i) == 
> '?')
> +                                             {
> +                                                     break;
> +                                             }
> +                                             if (relativeUrl.charAt(i) == 
> '/')
> +                                             {
> +                                                     
> prepender.prepend("../");
> +                                             }
> +                                     }
> +                                     url = prepender.toString();
> +                             }
> +                             
>                               // if the tag is an anchor proper
>                               if (tag.getName().equalsIgnoreCase("a") || 
> tag.getName().equalsIgnoreCase("link")
>                                               || 
> tag.getName().equalsIgnoreCase("area"))

Hello AlMaw,

I wonder  if we can try  centralizing the relative URL  stuff in a
common helper method  rather than spreading the  rewriting code in
many  places?  Or  is  it completely  unrelated?   What about  the
reusable rewriteRelativeURL()  method that  we discussed  would be
great to use from anywhere in the code?

Cheers,
-- 
     Jean-Baptiste Quenot
aka  John Banana   Qwerty
http://caraldi.com/jbq/

Reply via email to