blob: c2f8af84545bf8cb4f9a1cb47e6eb45afe6ebf33 (
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
|
package com.vaadin.tests.components.tabsheet;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.AbstractComponentContainer;
import com.vaadin.ui.Button;
import com.vaadin.ui.Component;
import com.vaadin.ui.Label;
import com.vaadin.ui.TabSheet;
import com.vaadin.ui.Button.ClickEvent;
public class RemoveTabs extends TestBase {
protected TabSheet tabsheet;
protected Component[] tab = new Component[5];
private Button closeCurrent;
private Button closeFirst;
private Button closeLast;
private Button reorderTabs;
@Override
protected Integer getTicketNumber() {
return 2425;
}
@Override
protected String getDescription() {
return "Tests the removal of individual tabs from a Tabsheet. No matter what is done in this test the tab caption \"Tab X\" should always match the content \"Tab X\". Use \"remove first\" and \"remove active\" buttons to remove the first or the active tab. The \"reorder\" button reverses the order by adding and removing all components.";
}
@Override
protected void setup() {
tabsheet = new TabSheet();
for (int i = 1; i <= tab.length; i++) {
tab[i - 1] = new Label("This is the contents of tab " + i);
tab[i - 1].setCaption("Tab " + i);
tabsheet.addComponent(tab[i - 1]);
}
getLayout().addComponent(tabsheet);
closeCurrent = new Button("Close current tab");
closeCurrent.addListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
closeCurrentTab();
}
});
closeFirst = new Button("close first tab");
closeFirst.addListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
closeFirstTab();
}
});
closeLast = new Button("close last tab");
closeLast.addListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
closeLastTab();
}
});
reorderTabs = new Button("reorder");
reorderTabs.addListener(new Button.ClickListener() {
public void buttonClick(ClickEvent event) {
reorder();
}
});
getLayout().addComponent(closeFirst);
getLayout().addComponent(closeLast);
getLayout().addComponent(closeCurrent);
getLayout().addComponent(reorderTabs);
}
private void closeCurrentTab() {
Component c = tabsheet.getSelectedTab();
if (c != null) {
tabsheet.removeComponent(c);
}
}
private void closeFirstTab() {
tabsheet.removeComponent((Component) tabsheet.getComponentIterator()
.next());
}
@SuppressWarnings("unchecked")
private void closeLastTab() {
Iterator i = tabsheet.getComponentIterator();
Component last = null;
while (i.hasNext()) {
last = (Component) i.next();
}
tabsheet.removeComponent(last);
}
@SuppressWarnings("unchecked")
private void reorder() {
AbstractComponentContainer container = tabsheet;
if (container != null) {
List<Component> c = new ArrayList<Component>();
Iterator<Component> i = container.getComponentIterator();
while (i.hasNext()) {
Component comp = i.next();
c.add(comp);
}
container.removeAllComponents();
for (int j = c.size() - 1; j >= 0; j--) {
container.addComponent(c.get(j));
}
}
}
}
|