package de.swm.mobile.kitchensink.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.Scheduler; import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.shared.UmbrellaException; import de.swm.commons.mobile.client.SWMMobile; import de.swm.commons.mobile.client.SWMMobileSettings; import de.swm.commons.mobile.client.page.SimplePage; import de.swm.commons.mobile.client.setup.StatusBarStyle; import de.swm.commons.mobile.client.setup.ViewPort; import de.swm.commons.mobile.client.widgets.HeaderPanel; import de.swm.gwt.client.responsive.IMatchMedia; import de.swm.gwt.client.responsive.IMatchMediaChangeHandler; import de.swm.gwt.client.responsive.MatchMediaFacade; import de.swm.gwt.client.superdev.SuperDevModeUtil; import de.swm.commons.mobile.client.theme.bootstrap.BootsrapSWMMobileTheme; import java.util.logging.Logger; /** * EntryPoint for the swm-mobile showcase. * * @author wiese.daniel <br> * copyright (C) 2011-2014, SWM Services GmbH */ public class Application implements EntryPoint { public static ToolbarPage mainPage; private static final Logger LOGGER = Logger.getLogger(Application.class.getName()); /** * The type passed into the * {@link de.swm.mobile.kitchensink.generator.ShowcaseGenerator}. */ private static final class GeneratorInfo { } @Override public void onModuleLoad() { // Generate the source code and css for the examples GWT.create(GeneratorInfo.class); SWMMobile.setTheme(new BootsrapSWMMobileTheme()); //Test: Media query support if (MatchMediaFacade.getInstance().isSupported()) { IMatchMedia minWidth = MatchMediaFacade.getInstance().match("(min-width: 720px)"); minWidth.addMatchMediaChangeHandler(new IMatchMediaChangeHandler() { public void onMatchMediaChange(IMatchMedia matchMedia) { LOGGER.info("Query (min-width: 720px) result " + matchMedia.getMedia()); if (matchMedia.hasMatch()) { LOGGER.info("Media Query (min-width: 720px) is matching " + matchMedia.hasMatch()); } } }); } GWT.setUncaughtExceptionHandler(new GWT.UncaughtExceptionHandler() { public void onUncaughtException(Throwable e) { Throwable unwrapped = unwrap(e); LOGGER.severe("uncaught exception: " + unwrapped.getMessage()); } public Throwable unwrap(Throwable e) { if (e instanceof UmbrellaException) { UmbrellaException ue = (UmbrellaException) e; if (ue.getCauses().size() == 1) { return unwrap(ue.getCauses().iterator().next()); } } return e; } }); SWMMobileSettings settings = new SWMMobileSettings(); settings.setFullscreen(true); settings.setPreventScrolling(false); settings.setStatusBarStyle(StatusBarStyle.BLACK); settings.setIconUrl("images/apple-touch-icon.png"); settings.setStartUrl("images/startup.png"); ViewPort viewPort = new ViewPort(); viewPort.setWidthToDeviceWidth(); viewPort.setInitialScale(1); viewPort.setMaximumScale(1); viewPort.setUserScaleAble(false); settings.setViewPort(viewPort); SWMMobile.applySettings(settings); Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { mainPage = new ToolbarPage(); SimplePage.load(mainPage); //Enables the super dev mode recompilation SuperDevModeUtil.showDevMode(); } }); } public static ToolbarPage getStartPage() { return mainPage; } public static void addDefaultBackButtonHanlder(HeaderPanel header) { header.setLeftButtonClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Application.getStartPage().selectToolbar(1); } }); } }