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
>

Reply via email to