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
|
package com.itmill.toolkit.tests.book;
import java.util.HashMap;
import com.itmill.toolkit.Application;
import com.itmill.toolkit.terminal.ExternalResource;
import com.itmill.toolkit.ui.Button;
import com.itmill.toolkit.ui.Label;
import com.itmill.toolkit.ui.Link;
import com.itmill.toolkit.ui.Window;
import com.itmill.toolkit.ui.Button.ClickEvent;
public class WindowTestApplication extends Application {
Window anotherpage = null;
HashMap windows = new HashMap();
@Override
public void init() {
final Window main = new Window("Window Test Application");
setMainWindow(main);
setTheme("tests-book");
/* Create a new window. */
final Window mywindow = new Window("Second Window");
/* Manually set the name of the window. */
mywindow.setName("mywindow");
/* Add some content to the window. */
mywindow.addComponent(new Label("This is a second window."));
/* Add the window to the application. */
addWindow(mywindow);
/* Add a button to open a new window. */
main.addComponent(new Button("Click to open new window",
new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
// Open the window.
main.open(new ExternalResource(mywindow.getURL()),
"_new");
}
}));
/* Add a link to the second window. */
Link link = new Link("Click to open second window",
new ExternalResource(mywindow.getURL()));
link.setTargetName("_new");
main.addComponent(link);
// Add the link manually inside a Label.
main.addComponent(new Label("Second window: <a href='"
+ mywindow.getURL() + "' target='_new'>click to open</a>",
Label.CONTENT_XHTML));
main.addComponent(new Label(
"The second window can be accessed through URL: "
+ mywindow.getURL()));
// Add links to windows that do not yet exist, but are created
// dynamically when the URL is called.
main.addComponent(new Label("URLs to open item windows:"));
final String[] items = new String[] { "mercury", "venus", "earth",
"mars", "jupiter", "saturn", "uranus", "neptune" };
for (int inx = 0; inx < items.length; inx++) {
String item = items[inx];
// We do not create window objects here, but just links to the
// windows
String windowUrl = getURL() + "planet-" + item;
main.addComponent(new Label("A window about '" + item
+ "': <a href='" + windowUrl + "' target='_new'>"
+ windowUrl + "</a>", Label.CONTENT_XHTML));
}
}
@Override
public Window getWindow(String name) {
if (name.startsWith("planet-")) {
String planetName = name.substring("planet-".length());
if (!windows.containsKey(planetName)) {
// Create the window object on the fly.
Window newWindow = new Window("Yet Another Page");
newWindow.addComponent(new Label(
"This window contains details about " + planetName
+ "."));
windows.put(planetName, newWindow);
// We must add the window to the application, it is not done
// automatically
addWindow(newWindow);
}
return (Window) windows.get(planetName);
}
return super.getWindow(name);
}
}
|