List of usage examples for org.apache.wicket.request.mapper.parameter PageParameters equals
public static boolean equals(final PageParameters p1, final PageParameters p2)
From source file:de.micromata.wicket.request.mapper.PageParameterAwareMountedMapper.java
License:Open Source License
@Override protected IRequestHandler processHybrid(PageInfo pageInfo, Class<? extends IRequestablePage> pageClass, PageParameters pageParameters, Integer renderCount) { IRequestHandler handler = null;/*from w w w . j ava2s . c o m*/ try { handler = super.processHybrid(pageInfo, pageClass, pageParameters, renderCount); } catch (PageExpiredException e) { // in case of pageExpiredException at this point, we just redirect to previous bookmarkable resource return processBookmarkable(pageClass, pageParameters); } if (handler != null && handler instanceof RenderPageRequestHandler) { // in the current implementation (wicket 1.5.6) super.processHybrid // returns a RenderPageRequestHandler RenderPageRequestHandler renderPageHandler = (RenderPageRequestHandler) handler; if (renderPageHandler.getPageProvider() instanceof PageProvider) { PageProvider provider = (PageProvider) renderPageHandler.getPageProvider(); // This check is necessary to prevent a RestartResponseAtInterceptPageException at the wrong time in request cycle if (provider.hasPageInstance()) { // get page classes Class<? extends IRequestablePage> oldPageClass = renderPageHandler.getPageClass(); Class<? extends IRequestablePage> newPageClass = renderPageHandler.getPageProvider() .getPageClass(); // get page parameters PageParameters newPageParameters = renderPageHandler.getPageParameters(); PageParameters oldPageParameters = renderPageHandler.getPageProvider().getPageInstance() .getPageParameters(); if (oldPageClass != null && oldPageClass.equals(newPageClass) == false) { return processBookmarkable(newPageClass, newPageParameters); } // if we recognize a change between the page parameter of the loaded // page and the page parameter of the current request, we redirect // to a fresh bookmarkable instance of that page. if (!PageParameters.equals(oldPageParameters, newPageParameters)) { return processBookmarkable(newPageClass, newPageParameters); } } } } return handler; }