/** * 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; } }
/** * 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; } }
/** {@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); }