Take a look at my RequestDelegate class which delegates every method to
another class. I then override one method which I want to change.

You could do exactly the same and create a LinkDelegate. After all, it's
just an interface

:)

On Tuesday, 3 April 2012, Juan Alba <juan.a...@condortech.com.ar> wrote:
> First of all thanks a lot for all your time and help Lance. I have used
> your example and worked perfect. I could use the mode to put the
> css dynamically as I wished. Thanks a lot.
>
> Now my problem is trying to use it in my web app. In tapestry 5.1.0.5
> LinkImpl doesn't have getBasePath(), or copyWithBasePath(). You are using
> them in the ModeComponentEventLinkEncoder.
>
> I decided to replace the getBasePath() with toAbsoluteURI() and to create
a
> private method to copy the link passing the link as an attribute but it is
> imposible to create an instance of LinkImpl from the link because I can't
> get the values of optimizable, linkforForm, response, optimizer from it.
> I don't know how to continue from here and if I can replace the basePath
> with the AbsoluteUri. :(
>
> Thanks.
>
> On Sat, Mar 31, 2012 at 9:43 AM, Lance Java <lance.j...@googlemail.com
>wrote:
>
>> I've put together a little demo decorating the ComponentEventLinkEncoder
>> which I'm sure you could adapt to the deprecated URLRewriter if you
prefer
>> it that way. I've done it in tapestry 5.3 but it could be packported to
>> tapestry 5.1.0.5 as is.
>>
>> I've setup three "special" prefixes for "foo", "bar" and "facebook"
>>
>> If you download it and mvn jetty:run then hit
>> http://localhost:8080/tapestry-sandbox/facebook/modepage1. You will see
>> that the "mode" environmental is set to "facebook". Click on either of
the
>> links and you will be sent to
>> http://localhost:8080/tapestry-sandbox/facebook/modepage2<
>> http://localhost:8080/tapestry-sandbox/facebook/modepage1>
>>
>> Likewise, you can try
>> http://localhost:8080/tapestry-sandbox/foo/modepage1<
>> http://localhost:8080/tapestry-sandbox/facebook/modepage1>
>> (mode
>> = foo)
>>
>> Or
>> http://localhost:8080/tapestry-sandbox/modepage1<
>> http://localhost:8080/tapestry-sandbox/facebook/modepage1>
>> (mode
>> = null)
>>
>>
>> Code is here
>> https://github.com/uklance/tapestry-sandbox
>>
>> Interesting files here
>>
>>
https://github.com/uklance/tapestry-sandbox/tree/master/src/main/java/com/github/uklance/extras
>>
>>
>> Cheers,
>> Lance.
>>
>

Reply via email to