Example usage for org.apache.wicket.core.request.handler RenderPageRequestHandler getPageParameters

List of usage examples for org.apache.wicket.core.request.handler RenderPageRequestHandler getPageParameters

Introduction

In this page you can find the example usage for org.apache.wicket.core.request.handler RenderPageRequestHandler getPageParameters.

Prototype

@Override
    public PageParameters getPageParameters() 

Source Link

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 www . j  ava2 s .co  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;
}