summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2011-09-26 11:18:09 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2011-09-26 11:18:09 +0200
commit580559c65d60a29f3628eac616a1b4bbc4da708e (patch)
treedc18028c5378ba149500c56a3fe374cc7e85ad2a
parentbfdc9b4bab98a06dd530204e45970370ce104871 (diff)
downloadskeletons-580559c65d60a29f3628eac616a1b4bbc4da708e.zip
skeletons-580559c65d60a29f3628eac616a1b4bbc4da708e.tar.gz
vaadim-app: add uncaught exceptions handler
-rw-r--r--vaadin-app/src/ch/asynk/helloworld/HelloWorldApp.java29
1 files changed, 24 insertions, 5 deletions
diff --git a/vaadin-app/src/ch/asynk/helloworld/HelloWorldApp.java b/vaadin-app/src/ch/asynk/helloworld/HelloWorldApp.java
index c516e55..1185f65 100644
--- a/vaadin-app/src/ch/asynk/helloworld/HelloWorldApp.java
+++ b/vaadin-app/src/ch/asynk/helloworld/HelloWorldApp.java
@@ -4,6 +4,7 @@ import java.util.Date;
import com.vaadin.Application;
import com.vaadin.terminal.UserError;
+import com.vaadin.terminal.Terminal;
import com.vaadin.data.Property;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.util.ObjectProperty;
@@ -70,6 +71,15 @@ class MainLayout extends VerticalLayout {
event.getButton().setComponentError( new UserError("Stop pressing this button !!") );
}
}));
+ ///
+ Button exceptionButton = new Button("throw an exception");
+ addComponent(exceptionButton );
+ exceptionButton.addListener( new Button.ClickListener() {
+ @Override
+ public void buttonClick(ClickEvent event) {
+ throw new RuntimeException("Wahou !! : exception");
+ }
+ });
//
Button nextButton = new Button("next layout");
nextButton.setDescription("Go to next layout");
@@ -85,14 +95,23 @@ class MainLayout extends VerticalLayout {
}
public class HelloWorldApp extends Application {
+ private static final long serialVersionUID = 1L;
- private static final long serialVersionUID = 1L;
-
- @Override
- public void init() {
+ @Override
+ public void init() {
final Window mainWindow = new Window("Hello World Application");
mainWindow.setContent( new MainLayout() );
setMainWindow(mainWindow);
setLogoutURL("http://asynk.ch");
- }
+ }
+
+ @Override
+ public void terminalError(Terminal.ErrorEvent event) {
+ // Call the default implementation.
+ super.terminalError(event);
+ // Some custom behaviour.
+ if (getMainWindow() != null) {
+ getMainWindow().showNotification("An unchecked exception occured!", event.getThrowable().toString(), Window.Notification.TYPE_ERROR_MESSAGE);
+ }
+ }
}