1 15 package org.apache.tapestry.form.validator; 16 17 import org.apache.tapestry.IMarkupWriter; 18 import org.apache.tapestry.IRequestCycle; 19 import org.apache.tapestry.form.FormComponentContributorContext; 20 import org.apache.tapestry.form.IFormComponent; 21 import org.apache.tapestry.form.ValidationMessages; 22 import org.apache.tapestry.valid.ValidationConstraint; 23 import org.apache.tapestry.valid.ValidationStrings; 24 import org.apache.tapestry.valid.ValidatorException; 25 26 32 public class MinLength extends BaseValidator 33 { 34 private int _minLength; 35 36 public MinLength() 37 { 38 } 39 40 public MinLength(String initializer) 41 { 42 super(initializer); 43 } 44 45 public void setMinLength(int minLength) 46 { 47 _minLength = minLength; 48 } 49 50 public int getMinLength() 51 { 52 return _minLength; 53 } 54 55 public void validate(IFormComponent field, ValidationMessages messages, Object object) 56 throws ValidatorException 57 { 58 String string = (String ) object; 59 60 if (string.length() < _minLength) 61 throw new ValidatorException(buildMessage(messages, field), 62 ValidationConstraint.MINIMUM_WIDTH); 63 } 64 65 protected String buildMessage(ValidationMessages messages, IFormComponent field) 66 { 67 return messages.formatValidationMessage( 68 getMessage(), 69 ValidationStrings.VALUE_TOO_SHORT, 70 new Object [] 71 { new Integer (_minLength), field.getDisplayName() }); 72 } 73 74 public void renderContribution(IMarkupWriter writer, IRequestCycle cycle, 75 FormComponentContributorContext context, IFormComponent field) 76 { 77 context.includeClasspathScript("/org/apache/tapestry/form/validator/StringValidator.js"); 78 79 StringBuffer buffer = new StringBuffer ("function(event) { validate_min_length(event, "); 80 buffer.append(context.getFieldDOM()); 81 buffer.append(", "); 82 buffer.append(_minLength); 83 buffer.append(", '"); 84 buffer.append(buildMessage(context, field)); 85 buffer.append("'); }"); 86 87 context.addSubmitListener(buffer.toString()); 88 } 89 } | Popular Tags |