package org.nocket.page; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.nocket.util.SevereWebException; /** * Factory class for creating a web pages instances for specified views. Web * page must extend DMDWebPage and be in sub-package ".page.". Class name of it * must be the same as class name of view + "Page" suffix. * <p> * For example view: my.package.login.LoginView expects its web page in class * my.package.login.page.LoginViewPage. * <p> * Normally you don't have to use this class directly. Rather use * {@link DMDWebPage#setResponsePageForView(Object)} or * {@link DMDWebPage#setRedirectPageForView(Object, PageParameters)} methods * instead. * * @author blaz02 * */ public class DMDPageFactory { /** * @param view * Instance of the view. Cannot be null. * * @return Instance of the page for the view. * * @throws SevereWebException * If page instance cannot be created. */ public static DMDWebPage getViewPageInstance(Object view) { return new FactoryHelper(view).getPageInstance(); } /** * @param view * Instance of the view. Cannot be null. * * @return Class name for the page for the view. * * @throws SevereWebException * If page instance cannot be created. */ public static Class<DMDWebPage> getViewPageClass(Object view) { return new FactoryHelper(view).getPageClass(); } /** * If NocketSession exists the factory will store the PageReference of the * page with the hashCode of the View in the Session.PageHistory Map. * * @param page * - The Page which PageReference will be stored * @param view * - The view to (maybe) come back - Nothing will be stored if * View is null */ public static void storePageForView(DMDWebPage page, Object view) { if (view != null) { new FactoryHelper(view).storePageForView(page); } } }