package com.google.gwt.gwtpages.demo.client; import java.io.Serializable; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.gwtpages.client.GotoPageCommand; import com.google.gwt.gwtpages.client.Pages; import com.google.gwt.gwtpages.client.applicationpresenter.CompositeLayoutApplicationPresenter; import com.google.gwt.gwtpages.client.page.LoadedPageContainer; import com.google.gwt.gwtpages.client.page.event.PageErrorEventHandler; import com.google.gwt.gwtpages.client.page.parameters.PageParameters; import com.google.gwt.gwtpages.demo.client.loaders.DemoPageLoader; import com.google.gwt.gwtpages.demo.client.pages.PageConstants; import com.google.gwt.gwtpages.demo.client.pages.layout.DefaultLayoutPage; import com.google.gwt.gwtpages.demo.client.pages.layout.NoLayoutPage; import com.google.gwt.gwtpages.demo.client.pages.layout.RightNavLayoutPage; import com.google.gwt.user.client.Command; /** * Entry point classes define <code>onModuleLoad()</code>. */ public class GWT_Pages_Demo implements EntryPoint, PageErrorEventHandler { /** * This is the entry point method. */ public void onModuleLoad() { // composite application presenter for use with the layouts demo page CompositeLayoutApplicationPresenter presenter = new CompositeLayoutApplicationPresenter(PageConstants.LAYOUT_DEFAULT) .register(PageConstants.LAYOUT_DEFAULT, new DefaultLayoutPage()) .register(PageConstants.LAYOUT_NONE, new NoLayoutPage()) .register(PageConstants.LAYOUT_NAV_RIGHT, new RightNavLayoutPage()); // initialize the pages settings Pages.init( (DemoPageLoader) GWT.create(DemoPageLoader.class), // the class responsible for mapping page tokens to pages presenter, // the component that will actually render the pages new HandlerManager(null), true) // the event bus .addDefaultEventHandlers().add(this); // add default behavior if desired // make the initial page show up (and check the history token to go directly to a requested page and bypass the start // page if necessary Pages.get().showStartPage(true); } @Override public void init(Pages pages) {} @Override public Command onPageEnterFailure(LoadedPageContainer pageLoadResult, PageParameters parameters, GotoPageCommand command) { return new Command() { @Override public void execute() { Pages.get().gotoPage(PageConstants.PAGE_500).addHistoryToken(false).execute(); } }; } @Override public Command onPageLoadFailure(String historyToken, Throwable cause) { return new Command() { @Override public void execute() { Pages.get().gotoPage(PageConstants.PAGE_500).addHistoryToken(false).execute(); } }; } @Override public Command onIllegalPageAccess(LoadedPageContainer loadedPageContainer, PageParameters pageParameters, GotoPageCommand command, Serializable... parameters) { // we won't hit this method because we aren't calling illegal access return null; } @Override public Command onPageNotFound(String historyToken) { return new Command() { @Override public void execute() { Pages.get().gotoPage(PageConstants.PAGE_404).addHistoryToken(false).execute(); } }; } }