Example usage for org.apache.wicket IPageFactory IPageFactory

List of usage examples for org.apache.wicket IPageFactory IPageFactory

Introduction

In this page you can find the example usage for org.apache.wicket IPageFactory IPageFactory.

Prototype

IPageFactory

Source Link

Usage

From source file:com.vanillasource.jaywire.wicket.WicketModule.java

License:Open Source License

public IPageFactory getPageFactory() {
    return new IPageFactory() {
        @Override/*from  www.  jav  a  2  s.  co  m*/
        public <P extends IRequestablePage> boolean isBookmarkable(Class<P> pageClass) {
            return pageFactories.containsKey(pageClass);
        }

        @Override
        public <P extends IRequestablePage> P newPage(Class<P> pageClass) {
            return newPage(pageClass, new PageParameters());
        }

        @Override
        @SuppressWarnings("unchecked")
        public <P extends IRequestablePage> P newPage(Class<P> pageClass, PageParameters pageParameters) {
            Function<PageParameters, P> pageFactory = (Function<PageParameters, P>) pageFactories
                    .get(pageClass);
            if (pageFactory == null) {
                throw new WicketRuntimeException("No page with class " + pageClass
                        + " registered in JayWire Module. Please use the addPage() method to register bookmarkable pages.");
            }
            P page = pageFactory.apply(pageParameters);
            // This below is copied from DefaultPageFactory
            if (page.getPageParameters() != pageParameters) {
                page.getPageParameters().overwriteWith(pageParameters);
            }
            if (page instanceof Page) {
                ((Page) page).setWasCreatedBookmarkable(true);
            }
            return page;
        }
    };
}