summaryrefslogtreecommitdiffstats
path: root/vaadin-app/src/ch/asynk/helloworld/HelloWorldApp.java
blob: dbd133dc168024fc29e0a1437804bac9427ca342 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package ch.asynk.helloworld;

import java.util.Date;

import com.vaadin.Application;
import com.vaadin.terminal.Terminal;
import com.vaadin.terminal.UserError;
import com.vaadin.terminal.SystemError;
import com.vaadin.terminal.ErrorMessage;
import com.vaadin.terminal.VariableOwner;
import com.vaadin.terminal.URIHandler;
import com.vaadin.terminal.ParameterHandler;
import com.vaadin.terminal.gwt.server.ChangeVariablesErrorEvent;
import com.vaadin.ui.Window;
import com.vaadin.ui.AbstractComponent;

public class HelloWorldApp extends Application {
    private static final long serialVersionUID = 1L;

    @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);
        // http://dev.vaadin.com/browser/releases/6.6.6/src/com/vaadin/Application.java#L1190
        final Throwable t = event.getThrowable();
        Object owner = null;
        if (event instanceof VariableOwner.ErrorEvent) {
            owner = ((VariableOwner.ErrorEvent) event).getVariableOwner();
        } else if (event instanceof URIHandler.ErrorEvent) {
            owner = ((URIHandler.ErrorEvent) event).getURIHandler();
        } else if (event instanceof ParameterHandler.ErrorEvent) {
            owner = ((ParameterHandler.ErrorEvent) event).getParameterHandler();
        } else if (event instanceof ChangeVariablesErrorEvent) {
            owner = ((ChangeVariablesErrorEvent) event).getComponent();
        }
        if (owner instanceof AbstractComponent) {
            if (t instanceof ErrorMessage) {
                ((AbstractComponent) owner).setComponentError((ErrorMessage)t);
            } else {
                //((AbstractComponent) owner).setComponentError(new SystemError(t));
                ((AbstractComponent) owner).setComponentError(new UserError("User Error!"));
            }
        }
        // Some custom behaviour.
        if (getMainWindow() != null) {
            getMainWindow().showNotification("An unchecked exception occured!", event.getThrowable().toString(), Window.Notification.TYPE_ERROR_MESSAGE);
        }
    }
}