com.google.gwt.gwtpages.demo.client.loaders.DemoPageLoader.java Source code

Java tutorial

Introduction

Here is the source code for com.google.gwt.gwtpages.demo.client.loaders.DemoPageLoader.java

Source

package com.google.gwt.gwtpages.demo.client.loaders;

import com.google.gwt.gwtpages.client.applicationpresenter.CompositeLayoutApplicationPresenter;
import com.google.gwt.gwtpages.client.page.Page;
import com.google.gwt.gwtpages.client.page.PageAttributes;
import com.google.gwt.gwtpages.client.page.loader.StandardPageLoader;
import com.google.gwt.gwtpages.demo.client.pages.LayoutsPage;
import com.google.gwt.gwtpages.demo.client.pages.MessagesPage;
import com.google.gwt.gwtpages.demo.client.pages.MessagesViewImpl;
import com.google.gwt.gwtpages.demo.client.pages.NavigationPage;
import com.google.gwt.gwtpages.demo.client.pages.PageConstants;
import com.google.gwt.gwtpages.demo.client.pages.RequestInfoPage;
import com.google.gwt.gwtpages.demo.client.pages.StartPage;
import com.google.gwt.gwtpages.demo.client.pages._404Page;
import com.google.gwt.gwtpages.demo.client.pages._500Page;
import com.google.gwt.gwtpages.demo.client.pages.layout.DefaultLayoutPage;
import com.google.gwt.gwtpages.demo.client.pages.layout.RightNavLayoutPage;

public class DemoPageLoader extends StandardPageLoader {

    @Override
    public void registerPages() {
        registerPage(PAGE_DEFAULT, "Welcome", StartPage.class);
        registerPage(PageConstants.PAGE_NAVIGATION, "Navigation", NavigationPage.class);
        registerPage(PageConstants.PAGE_MESSAGES, "Messages", null, MessagesPage.class, MessagesViewImpl.class);
        registerPage(PageConstants.PAGE_REQUEST_INFO, "View Request Information", RequestInfoPage.class);

        // change the default layout for this page
        registerPage(PageConstants.PAGE_LAYOUTS, "Multiple Layouts", PageConstants.LAYOUT_NAV_RIGHT,
                LayoutsPage.class);

        registerPage(PageConstants.PAGE_404, _404Page.class);
        registerPage(PageConstants.PAGE_500, _500Page.class);
    }

    private void registerPage(String token, String title, Class<? extends Page> pageClass) {
        registerPage(token, title, null, pageClass);
    }

    /**
     * We'll add some data to the page attributes
     * 
     * @param token
     *            the page token
     * @param title
     *            the page title (this is referenced in the application
     *            presenters - {@link DefaultLayoutPage} and
     *            {@link RightNavLayoutPage}
     * @param layoutToken
     *            the token representing which application presenter (layout) we
     *            will use - {@link CompositeLayoutApplicationPresenter}
     * @param pageClass
     *            the page class
     */
    private void registerPage(String token, String title, String layoutToken, Class<? extends Page> pageClass) {
        PageAttributes attributes = new PageAttributes();
        attributes.put(PageConstants.PARAM_PAGE_TITLE, title);
        if (null != layoutToken)
            attributes.put(CompositeLayoutApplicationPresenter.PRESENTER_TOKEN_KEY, layoutToken);
        super.registerPage(token, pageClass, attributes);
    }

    private void registerPage(String token, String title, String layoutToken, Class<? extends Page> pageClass,
            Class<?> viewClass) {
        PageAttributes attributes = new PageAttributes();
        attributes.put(PageConstants.PARAM_PAGE_TITLE, title);
        if (null != layoutToken)
            attributes.put(CompositeLayoutApplicationPresenter.PRESENTER_TOKEN_KEY, layoutToken);
        super.registerPage(token, pageClass, viewClass, attributes);
    }
}