aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/itmill/toolkit/demo/NotificationDemo.java
blob: e7a0dcb7e44ad09ed9757615e6fc2e4f94fd3e7c (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package com.itmill.toolkit.demo;

import com.itmill.toolkit.data.Item;
import com.itmill.toolkit.ui.AbstractSelect;
import com.itmill.toolkit.ui.Button;
import com.itmill.toolkit.ui.NativeSelect;
import com.itmill.toolkit.ui.RichTextArea;
import com.itmill.toolkit.ui.TextField;
import com.itmill.toolkit.ui.Window;
import com.itmill.toolkit.ui.Button.ClickEvent;
import com.itmill.toolkit.ui.Button.ClickListener;

/**
 * Demonstrates the use of Notifications.
 * 
 * @author IT Mill Ltd.
 * @see com.itmill.toolkit.ui.Window
 */
public class NotificationDemo extends com.itmill.toolkit.Application {

    // Dropdown select for notification type, using the native dropdown
    NativeSelect type;
    // Textfield for the notification caption
    TextField caption;
    // Textfield for the notification content
    TextField message;

    /**
     * The initialization method that is the only requirement for inheriting the
     * com.itmill.toolkit.service.Application class. It will be automatically
     * called by the framework when a user accesses the application.
     */
    public void init() {

        // Create new window for the application and give the window a visible.
        Window main = new Window("Notification demo");
        // set as main window
        setMainWindow(main);

        // Create the 'type' dropdown select.
        type = new NativeSelect("Notification type");
        // no empty selection allowed
        type.setNullSelectionAllowed(false);
        // we want a different caption than the value
        type.addContainerProperty("caption", String.class, null);
        type.setItemCaptionMode(AbstractSelect.ITEM_CAPTION_MODE_PROPERTY);
        type.setItemCaptionPropertyId("caption");
        // add some content (items) using the Container API
        Item i = type.addItem(new Integer(
                Window.Notification.TYPE_HUMANIZED_MESSAGE));
        i.getItemProperty("caption").setValue("Humanized message");
        i = type.addItem(new Integer(Window.Notification.TYPE_WARNING_MESSAGE));
        i.getItemProperty("caption").setValue("Warning message");
        i = type.addItem(new Integer(Window.Notification.TYPE_ERROR_MESSAGE));
        i.getItemProperty("caption").setValue("Error message");
        i = type
                .addItem(new Integer(Window.Notification.TYPE_TRAY_NOTIFICATION));
        i.getItemProperty("caption").setValue("Tray notification");
        // set the initially selected item
        type.setValue(new Integer(Window.Notification.TYPE_HUMANIZED_MESSAGE));
        main.addComponent(type); // add to layout

        // Notification caption
        caption = new TextField("Caption");
        caption.setColumns(20);
        caption.setValue("Brown Fox!");
        main.addComponent(caption);

        // Notification message
        message = new RichTextArea();
        message.setCaption("Message");
        message.setValue("A quick one jumped over the lazy dog.");
        main.addComponent(message); // add to layout

        // Button to show the notification
        Button b = new Button("Show notification", new ClickListener() {
            // this is an inline ClickListener
            public void buttonClick(ClickEvent event) {
                // show the notification
                getMainWindow().showNotification((String) caption.getValue(),
                        (String) message.getValue(),
                        ((Integer) type.getValue()).intValue());
            }
        });
        main.addComponent(b); // add button to layout
    }
}