1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.exoplatform.ecm.webui.form.validator;
18
19 import org.exoplatform.web.application.ApplicationMessage;
20 import org.exoplatform.webui.core.UIComponent;
21 import org.exoplatform.webui.exception.MessageException;
22 import org.exoplatform.webui.form.UIForm;
23 import org.exoplatform.webui.form.UIFormInput;
24 import org.exoplatform.webui.form.validator.Validator;
25
26
27
28
29
30
31
32 public class ECMNameValidator implements Validator {
33
34 public void validate(UIFormInput uiInput) throws Exception {
35 if (uiInput.getValue()==null || ((String)uiInput.getValue()).trim().length()==0) return;
36 UIComponent uiComponent = (UIComponent) uiInput ;
37 UIForm uiForm = uiComponent.getAncestorOfType(UIForm.class) ;
38 String label;
39 try{
40 label = uiForm.getLabel(uiInput.getName());
41 } catch(Exception e) {
42 label = uiInput.getName();
43 }
44 label = label.trim();
45 if(label.charAt(label.length() - 1) == ':') label = label.substring(0, label.length() - 1);
46 String s = (String)uiInput.getValue();
47 if(s == null || s.trim().length() == 0) {
48 Object[] args = { uiInput.getLabel() };
49 throw new MessageException(new ApplicationMessage("ECMNameValidator.msg.empty-input", args, ApplicationMessage.WARNING)) ;
50 }
51 if(s.length() == 1)
52 if(s.equals(".")){
53 Object[] args = { label };
54 throw new MessageException(new ApplicationMessage("ECMNameValidator.msg.Invalid-char", args, ApplicationMessage.WARNING)) ;
55 }
56 for(int i = 0; i < s.length(); i ++){
57 char c = s.charAt(i);
58 if(Character.isLetter(c) || Character.isDigit(c) || Character.isSpaceChar(c) || c=='_'
59 || c=='-' || c=='.' || c=='@' || c=='^' || c==',' || c=='\'') {
60 continue ;
61 }
62 Object[] args = { label };
63 throw new MessageException(new ApplicationMessage("ECMNameValidator.msg.Invalid-char", args, ApplicationMessage.WARNING)) ;
64 }
65 }
66 }