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
|
/*
@ITMillApache2LicenseForJavaFiles@
*/
package com.vaadin.ui;
import java.util.Map;
import com.vaadin.data.Property;
import com.vaadin.event.FieldEvents.BlurEvent;
import com.vaadin.event.FieldEvents.BlurListener;
import com.vaadin.event.FieldEvents.FocusEvent;
import com.vaadin.event.FieldEvents.FocusListener;
import com.vaadin.terminal.PaintException;
import com.vaadin.terminal.PaintTarget;
import com.vaadin.terminal.gwt.client.ui.VCheckBox;
@ClientWidget(com.vaadin.terminal.gwt.client.ui.VCheckBox.class)
public class CheckBox extends AbstractField<Boolean> {
/**
* Creates a new checkbox.
*/
public CheckBox() {
setValue(Boolean.FALSE);
}
/**
* Creates a new checkbox with a set caption.
*
* @param caption
* the Checkbox caption.
*/
public CheckBox(String caption) {
this();
setCaption(caption);
}
/**
* Creates a new checkbox with a caption and a set initial state.
*
* @param caption
* the caption of the checkbox
* @param initialState
* the initial state of the checkbox
*/
public CheckBox(String caption, boolean initialState) {
this(caption);
setValue(initialState);
}
/**
* Creates a new checkbox that is connected to a boolean property.
*
* @param state
* the Initial state of the switch-button.
* @param dataSource
*/
public CheckBox(String caption, Property<?> dataSource) {
this(caption);
setPropertyDataSource(dataSource);
}
@Override
public Class<Boolean> getType() {
return Boolean.class;
}
@Override
public void paintContent(PaintTarget target) throws PaintException {
super.paintContent(target);
target.addVariable(this, VCheckBox.VARIABLE_STATE, getValue());
}
@Override
public void changeVariables(Object source, Map<String, Object> variables) {
super.changeVariables(source, variables);
if (!isReadOnly() && variables.containsKey(VCheckBox.VARIABLE_STATE)) {
// Gets the new and old states
final Boolean newValue = (Boolean) variables
.get(VCheckBox.VARIABLE_STATE);
final Boolean oldValue = getValue();
// The event is only sent if the switch state is changed
if (newValue != null && !newValue.equals(oldValue)) {
setValue(newValue);
}
}
if (variables.containsKey(FocusEvent.EVENT_ID)) {
fireEvent(new FocusEvent(this));
}
if (variables.containsKey(BlurEvent.EVENT_ID)) {
fireEvent(new BlurEvent(this));
}
}
public void addListener(BlurListener listener) {
addListener(BlurEvent.EVENT_ID, BlurEvent.class, listener,
BlurListener.blurMethod);
}
public void removeListener(BlurListener listener) {
removeListener(BlurEvent.EVENT_ID, BlurEvent.class, listener);
}
public void addListener(FocusListener listener) {
addListener(FocusEvent.EVENT_ID, FocusEvent.class, listener,
FocusListener.focusMethod);
}
public void removeListener(FocusListener listener) {
removeListener(FocusEvent.EVENT_ID, FocusEvent.class, listener);
}
}
|