1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.internal.component;
21
22 import org.apache.myfaces.tobago.component.SupportsMarkup;
23 import org.apache.myfaces.tobago.layout.LayoutComponent;
24 import org.apache.myfaces.tobago.util.MessageUtils;
25
26 import javax.faces.application.FacesMessage;
27 import javax.faces.component.UISelectBoolean;
28 import javax.faces.context.FacesContext;
29
30 public abstract class AbstractUISelectBooleanCheckbox extends UISelectBoolean
31 implements LayoutComponent, SupportsMarkup {
32
33 public boolean isSelected() {
34 Object value = getSubmittedValue();
35 if (value == null) {
36 value = getValue();
37 }
38 if (value instanceof Boolean) {
39 return ((Boolean) value);
40 } else {
41 return value != null && Boolean.valueOf(value.toString());
42 }
43 }
44
45 protected void validateValue(FacesContext facesContext, Object convertedValue) {
46 if (isRequired()) {
47 if (convertedValue instanceof Boolean && !((Boolean) convertedValue)
48
49 || convertedValue instanceof String && !Boolean.parseBoolean((String) convertedValue)) {
50 MessageUtils.addMessage(
51 facesContext, this, FacesMessage.SEVERITY_ERROR, REQUIRED_MESSAGE_ID, new Object[]{getId()});
52 setValid(false);
53 return;
54 }
55 }
56 super.validateValue(facesContext, convertedValue);
57 }
58 }