package org.exoplatform.wcm.webui;
import org.exoplatform.web.application.ApplicationMessage;
import org.exoplatform.webui.core.UIComponent;
import org.exoplatform.webui.exception.MessageException;
import org.exoplatform.webui.form.UIForm;
import org.exoplatform.webui.form.UIFormInput;
import org.exoplatform.webui.form.validator.Validator;
/**
* Author : TAN DUNG DANG
* dzungdev@gmail.com
* Mar 30, 2009
*/
public class ImageSizeValidator implements Validator {
/* (non-Javadoc)
* @see org.exoplatform.webui.form.validator.Validator#validate(org.exoplatform.webui.form.UIFormInput)
*/
@SuppressWarnings("unchecked")
public void validate(UIFormInput uiInput) throws Exception {
if (uiInput.getValue()==null || ((String)uiInput.getValue()).length()==0) return;
UIComponent uiComponent = (UIComponent) uiInput ;
UIForm uiForm = uiComponent.getAncestorOfType(UIForm.class) ;
String label;
try{
label = uiForm.getLabel(uiInput.getName());
} catch(Exception e) {
label = uiInput.getName();
}
label = label.trim();
if(label.charAt(label.length() - 1) == ':') label = label.substring(0, label.length() - 1);
String s = (String)uiInput.getValue();
int size = s.length();
for(int i = 0; i < size; i ++){
char c = s.charAt(i);
if (Character.isDigit(c) || (s.charAt(0) == '-' && i == 0 && s.length() > 1)
|| (s.charAt(size-1) == '%')){
continue;
}
Object[] args = { label, uiInput.getBindingField() };
throw new MessageException(new ApplicationMessage("NumberFormatValidator.msg.Invalid-number", args)) ;
}
}
}