Sorry Lance but I don't understand how to replace the link with an interface if I can't make a copyWithBasePath because I cant set/access all the attributes of the link.
Sorry but I don't understand. I am talking about link.getBasePath() and the link.copyWithBasePath(newPath) in the method transform from the class ModeComponentEventLinkEncoder. Regards. On Tue, Apr 3, 2012 at 4:49 PM, Lance Java <lance.j...@googlemail.com>wrote: > 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. > >> > > >