Try this

I have this method for getting the current page id and version.

protected PageIDVersion getCurrentPageIDVersion() {
        PageIDVersion pageIDVersion = new
PageIDVersion(getPageMapEntry().getNumericId(), getCurrentVersionNumber());
        return pageIDVersion;
  }

I send it to the next page by using a

class PageIDVersion {
    private Integer pageNum;
    private Integer version;
}

I store it as an instance in next page.

public class NextPage() {
private pageIdVersion pageIdVersion
private NextPage(PageIDVersion pageIdVersion) }
      this.pageIdVersion = pageIDversion;
   }
}

Then use this button to reference the previous page.

package com.ccti.base.web.components.button;

import org.apache.wicket.behavior.SimpleAttributeModifier;
import org.apache.wicket.markup.html.link.Link;

import com.ccti.base.web.utilities.PageIDVersion;

/**
 * @author Carlo M. Camerino
 *
 */
public class BackButton extends Link {
    private PageIDVersion pageIDVersion;

    public BackButton(String id, PageIDVersion pageIDVersion) {
        super(id);
        this.pageIDVersion = pageIDVersion;
        add(new SimpleAttributeModifier("value", "Back"));
    }

    @Override
    public void onClick() {
        setResponsePage(getPage().getPageMap().get(pageIDVersion.getId(),
pageIDVersion.getVersion()));
    }


}

On Mon, Apr 27, 2009 at 10:44 PM, James Carman <jcar...@carmanconsulting.com
> wrote:

> Copy/paste the code for PageReference into your code.  That's what I
> did.  I also created a factory method to create a PageReference from
> the currently requested page (useful for being able to go back).
>
> On Mon, Apr 27, 2009 at 10:42 AM, Daniele Dellafiore <ilde...@gmail.com>
> wrote:
> > I have tried to find something but, given that I am using wikcket 1.3
> > and I do not have PageReferences, the only way I have found to recover
> > the last page is to pass a parameter with the page name and then found
> > the last version of that page in the HttpSession pageMap.
> > Or to keep the reference of the last page in the session.
> >
> > I can do it but I expect that wicket already have that kind of
> > mechanism. Doesn't it?
> >
> > On Tue, Apr 14, 2009 at 8:30 PM, Igor Vaynberg <igor.vaynb...@gmail.com>
> wrote:
> >> search this forum for pagereference
> >>
> >> -igor
> >>
> >> On Tue, Apr 14, 2009 at 9:28 AM, Daniele Dellafiore <ilde...@gmail.com>
> wrote:
> >>> Here is my "return to last page" problem.
> >>>
> >>> A "detail" page has multiple tabs, an AjaxTabbedPanel. Swithing
> >>> between tabs does not put another page in browser history, so
> >>> history.back() is fine.
> >>> I have also a checkbox that trigger enable/disable state of all the
> >>> input of the form. Is an AjaxCheckBox that in the callback refresh the
> >>> form component after changing the "enable" property. The
> >>> history.back() works, again.
> >>>
> >>> But, I have a "reset" button that:
> >>> 1. reload the old values in the fields
> >>> 2. put the form in a disable state, like at the beginning.
> >>>
> >>> Now, to achieve this result, the Reset button actually calls a
> >>> setResponsePage(getPage(), getPage().getPageParameters())
> >>>
> >>> so reloads the current page with original parameters.
> >>> That calls actually make the history grow, so the history.back() is no
> >>> longer useful becouse, in fact, goes to the last version of the actual
> >>> page instead of the previous page.
> >>>
> >>> Any suggestion?
> >>>
> >>> I should simply use a document.form.reset() making that the Reset
> >>> button is not a submit button... sounds fine?
> >>>
> >>> In general, what is the best solution "wicket-like"? Is something
> >>> REST-like a la gmail, that returns to the /search/myFilter ? Or
> >>> something statefull, so I suppose it should be easy to recover the
> >>> last rendered page with the right version and so on...
> >>>
> >>> On Fri, Mar 13, 2009 at 5:18 PM, francisco treacy
> >>> <francisco.tre...@gmail.com> wrote:
> >>>> igor, i would agree with you if i wanted to mimic the browser back
> >>>> button functionality.
> >>>>
> >>>> but i do not. we intensively use panel swapping and we're only
> >>>> interested in registering when users click on certain pages (we can
> >>>> fine-tune pages which pages should be "back-clickable").
> >>>>
> >>>> we actually considered using history.go(-1), but if you want your app
> >>>> to seriously take into account usability / user experience, it's
> >>>> useless -- for instance think panel swapping, or rendering links such
> >>>> as "back to your search for ice-cream". personally i'm not someone who
> >>>> likes complexity just for the sake of it.
> >>>>
> >>>> francisco
> >>>>
> >>>>
> >>>> On Fri, Mar 13, 2009 at 3:43 PM, Igor Vaynberg <
> igor.vaynb...@gmail.com> wrote:
> >>>>> its really a lot of work to duplicate what the back button in the
> >>>>> browser already does. or a simple <a href="#"
> >>>>> onclick="history.go(-1)">back</a> will do as well.
> >>>>>
> >>>>> -igor
> >>>>>
> >>>>> On Fri, Mar 13, 2009 at 5:02 AM, francisco treacy
> >>>>> <francisco.tre...@gmail.com> wrote:
> >>>>>> to be honest i haven't read the whole thread, but we are also trying
> >>>>>> to achieve roughly the same thing.
> >>>>>>
> >>>>>> as of wicket 1.4-m1 there is a class called PageId that you may want
> >>>>>> to consider.
> >>>>>>
> >>>>>> i created a "back state holder" class that holds a PageId and an
> >>>>>> IModel<String> for the text of the back link. so for every visited
> >>>>>> page (in the onBeforeRender - could be placed in the base page), we
> >>>>>> set a holder in the session and in our base page we call
> >>>>>> Session.get.getHolder.  pretty simple really.
> >>>>>> as the PageId class is a unique identifier of the page you can use
> it
> >>>>>> to distinguish between pagemaps, etc. (so navigation doesn't
> interfere
> >>>>>> between tabs / windows)
> >>>>>>
> >>>>>> this fulfills our usecase, as this is just a helper link to "go back
> >>>>>> where you were". we don't completely rely on this link because we
> also
> >>>>>> do keep traditional navigation links in our pages.
> >>>>>>
> >>>>>> however i still need to solve the double click problem, i.e. if a
> user
> >>>>>> clicks twice on a link, the last rendered page will be the same as
> the
> >>>>>> one he is in. thus, the back link points to the same page.  it is
> >>>>>> actually quite tricky to get it right, yet i believe possible. i
> will
> >>>>>> definitely try to avoid the link handing over pageparams in the url
> >>>>>> "like in the good old days" :)
> >>>>>>
> >>>>>> i will post it once i get everything working together.
> >>>>>>
> >>>>>> francisco
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Fri, Mar 13, 2009 at 10:29 AM, pixologe <pixol...@mailinator.com>
> wrote:
> >>>>>>>
> >>>>>>> Just a thought which I did not think about when implementing this
> (thus I had
> >>>>>>> to change this stuff all over afterwards), perhaps it helps someone
> avoiding
> >>>>>>> the same mistake:
> >>>>>>>
> >>>>>>> The latest rendered page is not neccessarily the page that lead the
> user to
> >>>>>>> the current page.
> >>>>>>> I.e. retrieving the last page this way might result in strange
> behavior if
> >>>>>>> the user uses two browser windows or tabs simulaneously. Same
> applies for
> >>>>>>> clicking the browser's back button.
> >>>>>>>
> >>>>>>> Thus I had to go back to a rather old-fashioned solution, where
> every link
> >>>>>>> hands over a page param :-/ like in the good old days ;-)
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> rolandpeng wrote:
> >>>>>>>>
> >>>>>>>> great! after delare a ineer class below:
> >>>>>>>>       class PageIdVersion {
> >>>>>>>>               public int id;
> >>>>>>>>               public int version;
> >>>>>>>>               public PageIdVersion last;
> >>>>>>>>       }
> >>>>>>>> then the track function works.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> John Patterson wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>      // must declare hash map because meta data must be
> serializable
> >>>>>>>>>      private MetaDataKey<HashMap<String, PageIdVersion>>
> lastPageIdVersionKey
> >>>>>>>>> = new MetaDataKey<HashMap<String, PageIdVersion>>() {};
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> View this message in context:
> http://www.nabble.com/Possible-to-retrieve-previous-page-from-PageMap-tp20861106p22492628.html
> >>>>>>> Sent from the Wicket - User mailing list archive at Nabble.com.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> ---------------------------------------------------------------------
> >>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> ---------------------------------------------------------------------
> >>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >>>>>> For additional commands, e-mail: users-h...@wicket.apache.org
> >>>>>>
> >>>>>>
> >>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >>>>> For additional commands, e-mail: users-h...@wicket.apache.org
> >>>>>
> >>>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >>>> For additional commands, e-mail: users-h...@wicket.apache.org
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> Daniele Dellafiore
> >>> http://blog.ildella.net/
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >>> For additional commands, e-mail: users-h...@wicket.apache.org
> >>>
> >>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> >> For additional commands, e-mail: users-h...@wicket.apache.org
> >>
> >>
> >
> >
> >
> > --
> > Daniele Dellafiore
> > http://blog.ildella.net/
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> > For additional commands, e-mail: users-h...@wicket.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

Reply via email to