blob: 4bda8ee2481cbe64638c517d59fb471c42ddc9f4 (
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
|
package com.vaadin.tests.components.textfield;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUIWithLog;
import com.vaadin.ui.Button;
import com.vaadin.ui.CheckBox;
import com.vaadin.v7.data.Property.ValueChangeListener;
import com.vaadin.v7.ui.TextField;
/**
* Test to verify fields become implicitly "immediate" when adding value change
* listener to them.
*
* @since 7.2
* @author Vaadin Ltd
*/
public class AutomaticImmediate extends AbstractTestUIWithLog {
static final String BUTTON = "button";
static final String EXPLICIT_FALSE = "explicit-false";
static final String FIELD = "field";
static final String LISTENER_TOGGLE = "listener-toggle";
/*
* (non-Javadoc)
*
* @see com.vaadin.tests.components.AbstractTestUI#setup(com.vaadin.server.
* VaadinRequest)
*/
@Override
protected void setup(VaadinRequest request) {
final TextField textField = new TextField() {
/*
* (non-Javadoc)
*
* @see com.vaadin.ui.AbstractField#fireValueChange(boolean)
*/
@Override
protected void fireValueChange(boolean repaintIsNotNeeded) {
log("fireValueChange");
super.fireValueChange(repaintIsNotNeeded);
}
};
textField.setId(FIELD);
final ValueChangeListener listener = event -> log(
"Value changed: " + event.getProperty().getValue());
final CheckBox checkBox = new CheckBox("Toggle listener");
checkBox.addValueChangeListener(valueChange -> {
if (checkBox.getValue()) {
textField.addValueChangeListener(listener);
} else {
textField.removeValueChangeListener(listener);
}
});
checkBox.setId(LISTENER_TOGGLE);
Button b = new Button(
"setImmediate(false), sets explicitly false and causes server roundtrip",
event -> textField.setImmediate(false));
b.setId(EXPLICIT_FALSE);
Button b2 = new Button("Hit server, causes server roundtrip", event -> {
});
b2.setId(BUTTON);
addComponent(textField);
addComponent(checkBox);
addComponent(b);
addComponent(b2);
}
/*
* (non-Javadoc)
*
* @see com.vaadin.tests.components.AbstractTestUI#getTestDescription()
*/
@Override
protected String getTestDescription() {
return "Field should be immediate automatically if it has value change listener";
}
/*
* (non-Javadoc)
*
* @see com.vaadin.tests.components.AbstractTestUI#getTicketNumber()
*/
@Override
protected Integer getTicketNumber() {
return 8029;
}
}
|