package com.iambookmaster.client; import java.util.Date; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.GWT.UncaughtExceptionHandler; import com.google.gwt.dom.client.Style.Position; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.event.logical.shared.ResizeEvent; import com.google.gwt.event.logical.shared.ResizeHandler; import com.google.gwt.user.client.History; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.Window.ClosingEvent; import com.google.gwt.user.client.Window.ClosingHandler; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.iambookmaster.client.common.FileExchangeClient; import com.iambookmaster.client.common.MaskPanel; import com.iambookmaster.client.editor.ModelPersist; import com.iambookmaster.client.locale.AppLocale; import com.iambookmaster.client.model.Model; import com.iambookmaster.client.player.ContentPlayerImpl; public class Master implements EntryPoint { public void onModuleLoad() { if (GWT.isScript()) { GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() { private long last; public void onUncaughtException(Throwable e) { e.printStackTrace(); MaskPanel.hide(); long curr = new Date().getTime(); if (curr-last<5000) { last = curr; return; } last = curr; Window.alert(e.getMessage()); } }); } History.fireCurrentHistoryState(); Model model = new ModelPersist(AppLocale.getAppConstants(),AppLocale.getAppMessages()); ContentPlayerImpl player = new ContentPlayerImpl(); model.setContentPlayer(player); final VerticalPanel mainPanel = new VerticalPanel(); mainPanel.setSize("100%", "100%"); mainPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER); final MasterPanel masterPanel = new MasterPanel(model); mainPanel.add(masterPanel); mainPanel.setCellWidth(masterPanel,"100%"); mainPanel.setCellHeight(masterPanel,"100%"); RootPanel rootPanel = RootPanel.get(); mainPanel.getElement().getStyle().setPosition(Position.ABSOLUTE); mainPanel.getElement().getStyle().setTop(0,Unit.PX); mainPanel.getElement().getStyle().setLeft(0,Unit.PX); rootPanel.setSize("100%", "100%"); rootPanel.add(mainPanel); Window.addWindowClosingHandler(new ClosingHandler(){ public void onWindowClosing(ClosingEvent event) { event.setMessage(AppLocale.getAppConstants().lostAllUnsavedAlert()); } }); Window.addResizeHandler(new ResizeHandler() { public void onResize(ResizeEvent event) { masterPanel.onResize(); } }); FileExchangeClient.init(false); } }