Thanks Lance Again.

I have just been being reading the article you share with me and I realized
that is for tapestry 5.2.0. I am using 5.1.0.5, so I will have to use the *
URLRewriter* service (Can't update to 5.2.0). I have no idea how this work
either, do you think that I will be able to do something similar with this
service?

Thanks in advance.


On Wed, Mar 28, 2012 at 1:08 PM, Lance Java <lance.j...@googlemail.com>wrote:

> 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/pageto
> >> >> 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