blob: 6fa86543cbc2cf62859f39eacfbbad43b6cdaee5 (
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
|
package com.vaadin.tests.components.table;
import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.event.ItemClickEvent;
import com.vaadin.event.ItemClickEvent.ItemClickListener;
import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Component;
import com.vaadin.ui.GridLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Layout;
import com.vaadin.ui.Table;
import com.vaadin.ui.VerticalLayout;
public class TableClickValueChangeInteraction extends TestBase {
@Override
public void setup() {
GridLayout grid = new GridLayout(4, 4);
grid.setSpacing(true);
grid.setMargin(true);
getLayout().removeAllComponents();
getLayout().addComponent(grid);
for (int i = 0; i < 16; ++i) {
grid.addComponent(makeTable((i & 8) > 0, (i & 4) > 0, (i & 2) > 0,
(i & 1) > 0));
}
}
@Override
protected String getDescription() {
return "Table selection breaks if ItemClickListener requests repaint";
}
@Override
protected Integer getTicketNumber() {
return 7127;
}
private Component makeTable(boolean immediate, boolean selectable,
boolean listenClicks, boolean listenValueChanges) {
final Table table = new Table((immediate ? "I" : "i")
+ (selectable ? "S" : "s") + (listenClicks ? "C" : "c")
+ (listenValueChanges ? "V" : "v"));
final Label clickLabel = new Label("Click?");
final Label valueChangeLabel = new Label("Value?");
table.addContainerProperty("foo", String.class, null);
for (int i = 0; i < 3; i++) {
table.addItem("item" + i).getItemProperty("foo")
.setValue("An item " + i);
}
table.setImmediate(immediate);
table.setSelectable(selectable);
table.setWidth("100px");
table.setHeight("100px");
if (listenClicks) {
table.addListener(new ItemClickListener() {
@Override
public void itemClick(ItemClickEvent event) {
table.markAsDirty();
clickLabel.setValue("Click " + event.getItemId());
}
});
}
if (listenValueChanges) {
table.addListener(new ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
valueChangeLabel.setValue("Value "
+ event.getProperty().getValue());
}
});
}
Layout result = new VerticalLayout();
result.addComponent(table);
result.addComponent(clickLabel);
result.addComponent(valueChangeLabel);
return result;
}
}
|