summaryrefslogtreecommitdiffstats
path: root/src/com/itmill/toolkit/tests/NativeWindowing.java
blob: 79d8ba1c4617ffa9dca2c0c4b46026800f75efd9 (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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/* 
@ITMillApache2LicenseForJavaFiles@
 */

package com.itmill.toolkit.tests;

import java.net.MalformedURLException;
import java.net.URL;

import com.itmill.toolkit.Application;
import com.itmill.toolkit.ui.Button;
import com.itmill.toolkit.ui.Label;
import com.itmill.toolkit.ui.Window;
import com.itmill.toolkit.ui.Button.ClickEvent;

public class NativeWindowing extends Application {

    Window main = new Window("Windowing test");

    @Override
    public void init() {

        setMainWindow(main);

        main.addComponent(new Button("Add new subwindow",
                new Button.ClickListener() {
                    public void buttonClick(ClickEvent event) {
                        final Window w = new Window("sw "
                                + System.currentTimeMillis());
                        main.addWindow(w);
                        w.setPositionX(100);
                        w.setPositionY(100);
                        w.setWidth(200);
                        w.setHeight(200);

                        w.setWidth(100);
                        w.setHeight(400);

                        final Button closebutton = new Button("Close "
                                + w.getCaption(), new Button.ClickListener() {
                            public void buttonClick(ClickEvent event) {
                                main.removeWindow(w);
                            }

                        });
                        w.addComponent(closebutton);

                        w.addComponent(new Label(
                                "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>"
                                        + "<p>Lorem ipsum dolor sit amet.</p>",
                                Label.CONTENT_XHTML));

                    }
                }));

        main.addComponent(new Button(
                "Open a currently uncreated application level window",
                new Button.ClickListener() {
                    public void buttonClick(ClickEvent event) {
                        try {
                            main
                                    .open(
                                            new com.itmill.toolkit.terminal.ExternalResource(
                                                    new URL(
                                                            getURL(),
                                                            "mainwin-"
                                                                    + System
                                                                            .currentTimeMillis()
                                                                    + "/")),
                                            null);
                        } catch (final MalformedURLException e) {
                        }
                    }
                }));

        main.addComponent(new Button(
                "Commit (saves window state: size, place, scrollpos)"));
    }

    @Override
    public Window getWindow(String name) {

        final Window w = super.getWindow(name);
        if (w != null) {
            return w;
        }

        if (name != null && name.startsWith("mainwin-")) {
            final String postfix = name.substring("mainwin-".length());
            final Window ww = new Window("Window: " + postfix);
            ww.setName(name);
            ww.addComponent(new Label(
                    "This is a application-level window opened with name: "
                            + name));
            ww.addComponent(new Button("Click me", new Button.ClickListener() {
                int state = 0;

                public void buttonClick(ClickEvent event) {
                    ww.addComponent(new Label("Button clicked " + (++state)
                            + " times"));
                }
            }));
            addWindow(ww);
            return ww;
        }

        return null;
    }

}