1 15 package org.apache.tapestry.form.validator; 16 17 import org.apache.hivemind.util.PropertyUtils; 18 import org.apache.tapestry.IMarkupWriter; 19 import org.apache.tapestry.IRequestCycle; 20 import org.apache.tapestry.form.FormComponentContributorContext; 21 import org.apache.tapestry.form.IFormComponent; 22 import org.apache.tapestry.form.ValidationMessages; 23 import org.apache.tapestry.valid.ValidationConstraint; 24 import org.apache.tapestry.valid.ValidationStrings; 25 import org.apache.tapestry.valid.ValidatorException; 26 27 33 public class Min extends BaseValidator 34 { 35 private double _min; 36 37 public Min() 38 { 39 } 40 41 public Min(String initializer) 42 { 43 super(initializer); 44 } 45 46 49 50 public void validate(IFormComponent field, ValidationMessages messages, Object object) 51 throws ValidatorException 52 { 53 Number value = (Number ) object; 54 55 if (_min > value.doubleValue()) 56 throw new ValidatorException(buildMessage(messages, field), 57 ValidationConstraint.TOO_SMALL); 58 } 59 60 private String buildMessage(ValidationMessages messages, IFormComponent field) 61 { 62 return messages.formatValidationMessage( 63 getMessage(), 64 ValidationStrings.VALUE_TOO_SMALL, 65 new Object [] 66 { field.getDisplayName(), new Double (_min) }); 67 } 68 69 public void renderContribution(IMarkupWriter writer, IRequestCycle cycle, 70 FormComponentContributorContext context, IFormComponent field) 71 { 72 context.includeClasspathScript("/org/apache/tapestry/form/validator/NumberValidator.js"); 73 74 String message = buildMessage(context, field); 75 76 StringBuffer buffer = new StringBuffer ("function(event) { validate_min_number(event, "); 77 buffer.append(context.getFieldDOM()); 78 buffer.append(", "); 79 buffer.append(_min); 80 buffer.append(", '"); 81 buffer.append(message); 82 buffer.append("'); }"); 83 84 context.addSubmitListener(buffer.toString()); 85 } 86 87 public void setMin(double min) 88 { 89 _min = min; 90 } 91 92 } 93 | Popular Tags |