/** * Sets the page class with optionally the page parameters and page map name as the render * target of this request. * * @param pageClass * The page class to render as a response * @param pageParameters * The page parameters that gets appended to the bookmarkable url, * @param pageMapName * The pagemap in which the response page should be created */ public final void setResponsePage(final Class pageClass, final PageParameters pageParameters, final String pageMapName) { IRequestTarget target = new BookmarkablePageRequestTarget(pageMapName, pageClass, pageParameters); setRequestTarget(target); }
/** * @see java.lang.Object#hashCode() */ public int hashCode() { int result = "BookmarkablePageRequestTarget".hashCode(); result += getPageClass().hashCode(); result += pageMapName != null ? pageMapName.hashCode() : 0; return 17 * result; }
/** * @see org.apache.wicket.request.target.IEventProcessor#processEvents(org.apache.wicket.RequestCycle) */ public void processEvents(RequestCycle requestCycle) { if (!requestCycle.isRedirect()) { page = getPage(requestCycle); } }
/** * @see java.lang.Object#toString() */ public String toString() { return "[BookmarkablePageRequestTarget@" + hashCode() + " pageClass=" + getPageClass().getName() + "]"; }
/** * Gets a newly constructed page if we are not in a redirect. * * @param requestCycle * the request cycle * @return the page */ protected final Page getPage(RequestCycle requestCycle) { if (page == null && !requestCycle.isRedirect()) { page = newPage(getPageClass(), requestCycle); } return page; }
/** {@inheritDoc} */ @Override protected IRequestTarget resolveHomePageTarget(RequestCycle requestCycle, RequestParameters requestParameters) { //Grab the target as Wicket would normally calculate it BookmarkablePageRequestTarget classicTarget =(BookmarkablePageRequestTarget) super.resolveHomePageTarget(requestCycle, requestParameters); BookmarkablePageRequestTarget newTarget = resolvePageFlowTargets(classicTarget,requestCycle,requestParameters); //If the target that PageFlow is returning isn't the real home page we need to redirect to it. if(!classicTarget.getPageClass().equals(newTarget.getPageClass())){ //Redirect to the homepage if session is trying to go to the end of the flow since we are restarting it String currentStateFromSession = PageFlowSession.get().getFlowState().getCurrentViewState(); if(PageFlowConstants.PAGE_FLOW_FINAL_STATE_DONE.equals(currentStateFromSession)){ //Reset the whole flow state in preparation for a new flow PageFlowSession.get().resetFlowState(); // This line is to reset the target because the flowstate was just reset so the url needs to be regenerated classicTarget =(BookmarkablePageRequestTarget) super.resolveHomePageTarget(requestCycle, requestParameters); return classicTarget; } throw new RestartResponseException(newTarget.getPageClass(), newTarget.getPageParameters()); } return resolvePageFlowTargets(classicTarget,requestCycle,requestParameters); }
/** * Extracts the PageParameters from given request target * * @param requestTarget * @return page parameters */ private PageParameters getPageParameters(final IRequestTarget requestTarget) { if (requestTarget instanceof BookmarkablePageRequestTarget) { BookmarkablePageRequestTarget target = (BookmarkablePageRequestTarget)requestTarget; return target.getPageParameters(); } else if (requestTarget instanceof ListenerInterfaceRequestTarget) { ListenerInterfaceRequestTarget target = (ListenerInterfaceRequestTarget)requestTarget; Page page = target.getPage(); return getInitialPagePageParameters(page); } else { return null; } }
public void respond(RequestCycle requestCycle) { Page page = getPage(requestCycle); if (page.isPageStateless() == false && redirect) { requestCycle.redirectTo(page); } else { super.respond(requestCycle); } } };
protected Page newPage(Class pageClass, RequestCycle requestCycle) { Page page = super.newPage(pageClass, requestCycle); page.setMetaData(PAGE_PARAMETERS_META_DATA_KEY, new PageParameters(getPageParameters())); page.setMetaData(ORIGINAL_TRAILING_SLASHES_COUNT_METADATA_KEY, new Integer( originalUrlTrailingSlashesCount)); return page; }
if (target.getPageMapName() != null) return new PageInfo(null, null, target.getPageMapName());
/** * @see java.lang.Object#toString() */ @Override public String toString() { return "[BookmarkablePageRequestTarget@" + hashCode() + " pageClass=" + getPageClass().getName() + "]"; }
/** * Gets a newly constructed page if we are not in a redirect. * * @param requestCycle * the request cycle * @return the page */ protected final Page getPage(RequestCycle requestCycle) { if (page == null && !requestCycle.isRedirect()) { page = newPage(getPageClass(), requestCycle); } return page; }
/** * Extracts the PageParameters from given request target * * @param requestTarget * @return */ private PageParameters getPageParameters(IRequestTarget requestTarget) { if (requestTarget instanceof BookmarkablePageRequestTarget) { BookmarkablePageRequestTarget target = (BookmarkablePageRequestTarget)requestTarget; return target.getPageParameters(); } else if (requestTarget instanceof ListenerInterfaceRequestTarget) { ListenerInterfaceRequestTarget target = (ListenerInterfaceRequestTarget)requestTarget; Page page = target.getPage(); return getInitialPagePageParameters(page); } else { return null; } }
/** * @see org.apache.wicket.request.target.component.BookmarkablePageRequestTarget#respond(org.apache.wicket.RequestCycle) */ @Override public void respond(final RequestCycle requestCycle) { Page page = getPage(requestCycle); if ((page.isPageStateless() == false) && redirect) { requestCycle.redirectTo(page); } else { super.respond(requestCycle); } } }
/** * @see org.apache.wicket.request.target.component.BookmarkablePageRequestTarget#newPage(java.lang.Class, * org.apache.wicket.RequestCycle) */ @Override protected <C extends Page> Page newPage(final Class<C> pageClass, final RequestCycle requestCycle) { Page page = super.newPage(pageClass, requestCycle); page.setMetaData(PAGE_PARAMETERS_META_DATA_KEY, new PageParameters(getPageParameters())); page.setMetaData(ORIGINAL_TRAILING_SLASHES_COUNT_METADATA_KEY, new Integer( originalUrlTrailingSlashesCount)); return page; }
if (target.getPageMapName() != null) return new PageInfo(null, null, target.getPageMapName());
/** * Sets the page class with optionally the page parameters and page map name as the render * target of this request. * * @param <C> * * @param pageClass * The page class to render as a response * @param pageParameters * The page parameters that gets appended to the bookmarkable url, * @param pageMapName * The Pagemap in which the response page should be created */ public final <C extends Page> void setResponsePage(final Class<C> pageClass, final PageParameters pageParameters, final String pageMapName) { IRequestTarget target = new BookmarkablePageRequestTarget(pageMapName, pageClass, pageParameters); setRequestTarget(target); }
/** * @see java.lang.Object#hashCode() */ @Override public int hashCode() { int result = "BookmarkablePageRequestTarget".hashCode(); result += getPageClass().hashCode(); result += pageMapName != null ? pageMapName.hashCode() : 0; return 17 * result; }
public void processEvents(RequestCycle requestCycle) { if (!requestCycle.isRedirect()) { page = getPage(requestCycle); } }
/** * Returns a bookmarkable URL that references a given page class using a given set of page * parameters. Since the URL which is returned contains all information necessary to instantiate * and render the page, it can be stored in a user's browser as a stable bookmark. * * @param pageMap * Pagemap to use. If null is passed the default page map will be used * @param pageClass * Class of page * @param parameters * Parameters to page * @return Bookmarkable URL to page */ public final CharSequence urlFor(final IPageMap pageMap, final Class pageClass, final PageParameters parameters) { final IRequestTarget target = new BookmarkablePageRequestTarget(pageMap == null ? PageMap.DEFAULT_NAME : pageMap.getName(), pageClass, parameters); return encodeUrlFor(target); }