package com.google.gwt.gwtpages.client.page; import com.google.gwt.gwtpages.client.PageRequestSession; import com.google.gwt.gwtpages.client.Pages; import com.google.gwt.gwtpages.client.applicationpresenter.CompositeApplicationPresenter; import com.google.gwt.gwtpages.client.applicationpresenter.CompositeLayoutApplicationPresenter; import com.google.gwt.gwtpages.client.applicationpresenter.SimplePanelApplicationPresenter; import com.google.gwt.gwtpages.client.page.parameters.PageParameters; import com.google.gwt.user.client.ui.HasWidgets; import com.google.gwt.user.client.ui.Widget; /** * Interface used to work with the {@link Pages} class. The function of this * interface is to accept a page and present it in whatever way is desired. * * Known implementations are {@link SimplePanelApplicationPresenter}, * {@link CompositeApplicationPresenter}, * {@link CompositeLayoutApplicationPresenter} * * @author Joe Hudson */ public interface ApplicationPresenter { /** * Show the page * * @param page * the page * @param pageMetaData * the page metaData or null * @param parameters * the page parameters * @param session * {@link PageRequestSession} */ public void showPage(LoadedPageContainer page, PageParameters parameters, PageRequestSession session); /** * Remove the current page shown in this presenter */ public void clearCurrentPage(); /** * Initialize this presenter with the pages settings * * @param settings * the settings */ public void init(Pages settings); /** * Return the widget used for this presenter */ public Widget asWidget(); }