package de.swm.mobile.kitchensink.client.base; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.HasWidgets; import de.swm.commons.mobile.client.page.SimplePage; import de.swm.commons.mobile.client.widgets.Button; import de.swm.commons.mobile.client.widgets.HeaderPanel; import de.swm.commons.mobile.client.widgets.HorizontalPanel; import de.swm.gwt.client.mobile.Direction; import de.swm.mobile.kitchensink.client.ShowcaseConstants; /** * SWM S-IP-AN * User: wiesed * Date: 12.06.14 * Time: 14:05 */ public abstract class ShowcaseDetailPage extends SimplePage { private final Class<? extends ShowcaseDetailPage> clazz; boolean isInitialized = false; private HasWidgets parentPage; public abstract HeaderPanel getHeaderPanel(); protected ShowcaseDetailPage(Class<? extends ShowcaseDetailPage> clazz) { this.clazz = clazz; } public void init() { if (!isInitialized) { isInitialized = true; final String shortClassName = clazz.getSimpleName(); HorizontalPanel menu = new HorizontalPanel(); menu.add(new Button("Source", new ClickHandler() { @Override public void onClick(ClickEvent clickEvent) { String path = GWT.getModuleBaseURL() + ShowcaseConstants.DST_SOURCE_EXAMPLE + shortClassName + ".html"; Window.open(path, "_blank", null); } })); menu.add(new Button("UI.xml", new ClickHandler() { @Override public void onClick(ClickEvent clickEvent) { String path = GWT.getModuleBaseURL() + ShowcaseConstants.DST_SOURCE_UIXML + shortClassName + ".ui.xml.html"; Window.open(path, "_blank", null); } })); getHeaderPanel().setRightWidget(menu); } } public void setParentPage(final ShowcaseOverviewPage overviewPage) { this.parentPage = overviewPage.getParentWidget(); if (!isInitialized) { init(); } this.setParent(this.parentPage); getHeaderPanel().setLeftButtonClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { goTo(overviewPage, Direction.LEFT); } }); } public HasWidgets getParentPage() { return parentPage; } }