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.commons.fileupload.FileItem;
23 import org.apache.myfaces.tobago.component.UIFileInput;
24 import org.apache.myfaces.tobago.layout.LayoutComponent;
25 import org.apache.myfaces.tobago.util.MessageUtils;
26
27 import javax.faces.application.FacesMessage;
28 import javax.faces.component.UIInput;
29 import javax.faces.context.FacesContext;
30
31 public abstract class AbstractUIFile extends UIInput implements LayoutComponent, UIFileInput {
32
33 public void validate(FacesContext facesContext) {
34 if (isRequired()) {
35 if (getSubmittedValue() instanceof FileItem) {
36 FileItem file = (FileItem) getSubmittedValue();
37 if (file == null || file.getName().length() == 0) {
38 addErrorMessage(facesContext);
39 setValid(false);
40 }
41 } else {
42 addErrorMessage(facesContext);
43 setValid(false);
44 }
45 }
46 super.validate(facesContext);
47 }
48
49 private void addErrorMessage(FacesContext facesContext) {
50 MessageUtils.addMessage(
51 facesContext, this, FacesMessage.SEVERITY_ERROR, REQUIRED_MESSAGE_ID, new Object[]{getId()});
52 }
53
54 public abstract boolean isDisabled();
55
56 public abstract boolean isReadonly();
57
58 public abstract Integer getTabIndex();
59 }