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.UIInput;
28 import javax.faces.context.FacesContext;
29
30 public abstract class AbstractUISelectOneBase extends javax.faces.component.UISelectOne
31 implements SupportsMarkup, LayoutComponent {
32
33 public static final String MESSAGE_VALUE_REQUIRED = "tobago.SelectOne.MESSAGE_VALUE_REQUIRED";
34
35 public void validate(FacesContext facesContext) {
36 if (isRequired() && !isReadonly()) {
37 Object submittedValue = getSubmittedValue();
38 if (submittedValue == null || "".equals(submittedValue)) {
39 if (getRequiredMessage() != null) {
40 String requiredMessage = getRequiredMessage();
41 facesContext.addMessage(getClientId(facesContext), new FacesMessage(FacesMessage.SEVERITY_ERROR,
42 requiredMessage, requiredMessage));
43 } else {
44 MessageUtils.addMessage(facesContext, this, FacesMessage.SEVERITY_ERROR,
45 UIInput.REQUIRED_MESSAGE_ID, new Object[]{MessageUtils.getLabel(facesContext, this)});
46 }
47 setValid(false);
48 }
49 }
50 super.validate(facesContext);
51 }
52
53 public abstract boolean isReadonly();
54 }