https://issues.apache.org/jira/browse/WICKET-5513
Martin Grigorov Wicket Training and Consulting On Thu, Feb 20, 2014 at 2:16 PM, Ernesto Reinaldo Barreiro < [email protected]> wrote: > I do agree > > > On Thu, Feb 20, 2014 at 1:07 PM, Martin Grigorov <[email protected] > >wrote: > > > On Thu, Feb 20, 2014 at 2:02 PM, Ernesto Reinaldo Barreiro < > > [email protected]> wrote: > > > > > IMHO removing final would be the correct thing: this could be useful in > > > case a user wants to do something on a page when they are redirected > from > > > another. Sample use case. > > > > > > 1- I have a (mounted) page with some functionality. I have used this > > page > > > for some e-mail or some URL user keep.. > > > 2- I have created a new page that handles functionality. I want to > > replace > > > old page with RedirectPage pointing to new implementation. > > > 3- On new page I want to display some info in case user arrives to the > > page > > > coming from old page (and only in that case). > > > > > > But I agree the above could also be achieve by "custom means" > > > > > > > yes, you can either read the "Referrer" request header or you can pass > > custom request parameter and use it in the NewPage's constructor > > And this is more flexible than #onRedirect() because you will have the > > control on the context information > > > > > > > > > > > > > > > > On Thu, Feb 20, 2014 at 11:58 AM, Sven Meier <[email protected]> wrote: > > > > > > > Since #onRedirect() is final currently, I'm +1 to remove > > > IRedirectListener. > > > > > > > > Sven > > > > > > > > > > > > On 02/20/2014 11:03 AM, Martin Grigorov wrote: > > > > > > > >> I've missed RedirectPage in my search the first time. Thanks! > > > >> > > > >> Here is a better version: > > > >> > > > >> diff --git > > > >> i/wicket-core/src/main/java/org/apache/wicket/markup/html/ > > > >> pages/RedirectPage.java > > > >> w/wicket-core/src/main/java/org/apache/wicket/markup/html/ > > > >> pages/RedirectPage.java > > > >> index 9b60bea..57f6f1f 100644 > > > >> --- > > > >> i/wicket-core/src/main/java/org/apache/wicket/markup/html/ > > > >> pages/RedirectPage.java > > > >> +++ > > > >> w/wicket-core/src/main/java/org/apache/wicket/markup/html/ > > > >> pages/RedirectPage.java > > > >> @@ -17,8 +17,9 @@ > > > >> package org.apache.wicket.markup.html.pages; > > > >> > > > >> import org.apache.wicket.AttributeModifier; > > > >> -import org.apache.wicket.IRedirectListener; > > > >> import org.apache.wicket.Page; > > > >> +import org.apache.wicket.core.request.handler.PageProvider; > > > >> +import > > org.apache.wicket.core.request.handler.RenderPageRequestHandler; > > > >> import org.apache.wicket.markup.html.WebMarkupContainer; > > > >> import org.apache.wicket.markup.html.WebPage; > > > >> import org.apache.wicket.model.Model; > > > >> @@ -57,7 +58,7 @@ public class RedirectPage extends WebPage > > > >> { > > > >> final WebMarkupContainer redirect = new > > > >> WebMarkupContainer("redirect"); > > > >> final String content = waitBeforeRedirectInSeconds > + > > > >> ";URL=" + url; > > > >> - redirect.add(new AttributeModifier("content", new > > > >> Model<String>(content))); > > > >> + redirect.add(new AttributeModifier("content", new > > > >> Model<>(content))); > > > >> add(redirect); > > > >> } > > > >> > > > >> @@ -69,7 +70,7 @@ public class RedirectPage extends WebPage > > > >> */ > > > >> public RedirectPage(final Page page) > > > >> { > > > >> - this(page.urlFor(IRedirectListener.INTERFACE, > > > >> page.getPageParameters()), 0); > > > >> + this(page, 0); > > > >> } > > > >> > > > >> /** > > > >> @@ -83,7 +84,7 @@ public class RedirectPage extends WebPage > > > >> */ > > > >> public RedirectPage(final Page page, final int > > > >> waitBeforeRedirectInSeconds) > > > >> { > > > >> - this(page.urlFor(IRedirectListener.INTERFACE, > > > >> page.getPageParameters()), > > > >> + this(page.urlFor(new RenderPageRequestHandler(new > > > >> PageProvider(page))), > > > >> waitBeforeRedirectInSeconds); > > > >> } > > > >> > > > >> > > > >> I think it is better because it will create a "nice looking" url if > > > there > > > >> is #mountPage() for this page. > > > >> > > > >> Martin Grigorov > > > >> Wicket Training and Consulting > > > >> > > > >> > > > >> On Thu, Feb 20, 2014 at 11:52 AM, Ernesto Reinaldo Barreiro < > > > >> [email protected]> wrote: > > > >> > > > >> Martin, > > > >>> > > > >>> I cannot find where IRedirectListener#onRedirect is actually called > > > >>> except > > > >>> when page is visited via RedirectPage... So, to me is just a > > marker... > > > >>> Maybe making it not final might make sense as a page could do > > something > > > >>> when some other RedirectPage redirects to it? > > > >>> > > > >>> > > > >>> On Thu, Feb 20, 2014 at 10:30 AM, Martin Grigorov < > > > [email protected] > > > >>> > > > >>>> wrote: > > > >>>> Hi, > > > >>>> > > > >>>> I have the following patch here: > > > >>>> > > > >>>> -public abstract class Page extends MarkupContainer implements > > > >>>> IRedirectListener, IRequestablePage > > > >>>> +public abstract class Page extends MarkupContainer implements > > > >>>> IRequestablePage > > > >>>> { > > > >>>> /** True if the page hierarchy has been modified in the > > > current > > > >>>> request. */ > > > >>>> private static final int FLAG_IS_DIRTY = FLAG_RESERVED3; > > > >>>> @@ -497,16 +497,6 @@ public abstract class Page extends > > > MarkupContainer > > > >>>> implements IRedirectListener, > > > >>>> } > > > >>>> > > > >>>> /** > > > >>>> - * Redirect to this page. > > > >>>> - * > > > >>>> - * @see org.apache.wicket.IRedirectListener#onRedirect() > > > >>>> - */ > > > >>>> - @Override > > > >>>> - public final void onRedirect() > > > >>>> - { > > > >>>> - } > > > >>>> - > > > >>>> > > > >>>> > > > >>>> o.a.w.Page currently implements IRedirectListener but does nothing > > in > > > >>>> #onRedirect() and the method is final. > > > >>>> What is the idea here ? Maybe to forbid page specializations to > use > > > >>>> IRedirectListener ?! > > > >>>> > > > >>>> With my patch there are no other implementations of > > IRedirectListener, > > > >>>> so > > > >>>> we can remove it completely. Can you imagine a use case when IRL > is > > > >>>> > > > >>> needed > > > >>> > > > >>>> ? > > > >>>> > > > >>>> > > > >>>> Martin Grigorov > > > >>>> Wicket Training and Consulting > > > >>>> > > > >>>> > > > >>> > > > >>> -- > > > >>> Regards - Ernesto Reinaldo Barreiro > > > >>> > > > >>> > > > > > > > > > > > > > -- > > > Regards - Ernesto Reinaldo Barreiro > > > > > > > > > -- > Regards - Ernesto Reinaldo Barreiro >
