Example usage for org.apache.wicket.request.mapper.parameter PageParameters equals

List of usage examples for org.apache.wicket.request.mapper.parameter PageParameters equals

Introduction

In this page you can find the example usage for org.apache.wicket.request.mapper.parameter PageParameters equals.

Prototype

public static boolean equals(final PageParameters p1, final PageParameters p2) 

Source Link

Document

Compares two PageParameters objects.

Usage

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;
}