Great, if Tapestry is the only thing rendering your links then it will all
work.

By overriding the PageRenderLinkTransformer you are intercepting both link
creation and URL decoding so you are covering the whole flow.

On Wednesday, 28 March 2012, Juan Alba <juan.a...@condortech.com.ar> wrote:
> Thanks Again Lance.
>
> On Wed, Mar 28, 2012 at 12:10 PM, Lance Java <lance.j...@googlemail.com
>wrote:
>
>> I was assuming that all of your links were rendered by Tapestry (eg
>> EventLink and ActionLink). If this was the case then it *should* just
work.
>>
>
> You are assuming well. I am using ActionLinks.
> Right now, When you click a link I am doing:
> "return Page.class;"
> But as far as I understood, now I will have to do something like:
> *@Inject Enviroment*
>
> and instead of return do some stuff like:
>
> *return(pageRender.createPageRenderLink(FBAssociationPage.class)+
> ".facebookloginlink");*
>
> adding the getMode() somewhere in there...
>
> So it seems I am not understanding very well how to use the @Enviroment.
Or
> this is what I have to do?
>
> Thanks.
>
>
>> On Wednesday, 28 March 2012, Juan Alba <juan.a...@condortech.com.ar>
>> wrote:
>> > First of all, thanks again Lance!
>> >
>> >
>> >
>> > On Wed, Mar 28, 2012 at 11:25 AM, Lance Java <lance.j...@googlemail.com
>> >wrote:
>> >
>> >> Perhaps this would work
>> >>
>> >> Create an environmental object called Mode
>> >>
>> >> public interface Mode {
>> >>   public String getMode(); // facebook or normal
>> >> }
>> >>
>> >> Use tapestry's URL rewriting to rewrite http://myapp/facebook/page to
>> >> http://myapp/page (see
>> >> http://blog.tapestry5.de/index.php/2010/09/06/new-url-rewriting-api/)
>> >>
>> >> As the URL is rewritten, it pushes a mode onto the environment (either
>> >> "facebook" or "normal")
>> >>
>> >>   @Inject
>> >>   Environment environment
>> >>
>> >>   String mode = getModeFromURL();
>> >>   environment.push(Mode.class, new ModeImpl(mode));
>> >>
>> >
>> > This is great and I think that I'd got it.
>> >
>> > The problem is with this second part:
>> >
>> >> When rendering links, use Environment.peek() to get the Mode from the
>> >> environment and add the mode to each link URL if necessary.
>> >>
>> >> Components and Pages can then use the @Environmental annotation to
>> inject
>> >> the mode to determine which styles to include
>> >>
>> >> Then you get normal browsers to access http://myapp/page and facebook
>> to
>> >> access http://myapp/facebook/page
>> >>
>> >>
>> > My web app is using a lot of webLibs (almost one per section). If I do
>> > this, I will have to change all the web app, and all the web libs to
>> > build the links correctly? It seems to be a huge re-factoring.
>> >
>> > I am getting the idea right?
>> >
>> > Thanks.
>> >
>> >
>> >
>> >
>> >> On Wednesday, 28 March 2012, Juan Alba <juan.a...@condortech.com.ar>
>> >> wrote:
>> >> > Thanks Bob and Lance for the ideas and recomendations.
>> >> > I think that Lance understood better my problem. The mode to change
>> the
>> >> css
>> >> > I have it already solved with Thiago's suggestion.
>> >> > Now my problem is that I can't define which stylesheet to use from
>> >> server's
>> >> > side because the only way to define it is knowing if the app is
>> running
>> >> on
>> >> > an iframe or not.
>> >> >
>> >> > Before sending the mail with my problems I tried to use either
>> >> suggestions
>> >> > "Parameter" and "Cookies or Session".
>> >> >
>> >> > *Parameter:*
>> >> > If I have the parameter I have to change every class in the webapp
to
>> add
>> >> > the parameter if is set and don't loose it after the first link hit.
>> >> >
>> >> > *Cookies or Session:*
>> >> > If they are set, It seems to work fine until I close the application
>> >> > running in the iframe and open it in a new browser. It keeps all the
>> >> > session or cookies and will use the wrong stylesheet.
>> >> >
>> >> > Any other idea?
>> >> >
>> >> > Thanks guys.
>> >> >
>> >> > On Wed, Mar 28, 2012 at 4:31 AM, Lance Java <
>> lance.j...@googlemail.com
>> >> >wrote:
>> >> >
>> >> >> All of the solutions mentioned on this thread assume that there i

Reply via email to