/* * Copyright 2009 Fred Sauer * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.allen_sauer.gwt.dnd.test.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.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.RootPanel; /** * EntryPoint class for demonstrating and testing drag-and-drop library. */ public final class DragDropTest implements EntryPoint { private static native String getCompatMode() /*-{ return $doc.compatMode; }-*/; @Override public void onModuleLoad() { // set uncaught exception handler GWT.setUncaughtExceptionHandler(new GWT.UncaughtExceptionHandler() { @Override public void onUncaughtException(Throwable throwable) { String text = "Uncaught exception: "; while (throwable != null) { StackTraceElement[] stackTraceElements = throwable.getStackTrace(); text += throwable.toString() + "\n"; for (StackTraceElement element : stackTraceElements) { text += " at " + element + "\n"; } throwable = throwable.getCause(); if (throwable != null) { text += "Caused by: "; } } DialogBox dialogBox = new DialogBox(true, false); dialogBox.getElement().getStyle().setProperty("backgroundColor", "#ABCDEF"); System.err.print(text); text = text.replaceAll(" ", " "); dialogBox.setHTML("<pre>" + text + "</pre>"); dialogBox.center(); } }); // use a deferred command so that the handler catches onModuleLoad2() exceptions Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { onModuleLoad2(); } }); } public void onModuleLoad2() { RootPanel.get().add(new HTML("DragDropTest is in <b>" + getCompatMode() + "</b> mode.")); try { MouseDragHandlerTest mouseDragHandlerTest = new MouseDragHandlerTest(); mouseDragHandlerTest.gwtSetUp(); mouseDragHandlerTest.allTestsHack(); } catch (Exception e) { throw new RuntimeException(e); } } }