package org.zkoss.zktest.zats.zuti.vm;
import org.zkoss.bind.ValidationContext;
import org.zkoss.bind.Validator;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.Init;
import org.zkoss.bind.validator.AbstractValidator;
import org.zkoss.zk.ui.util.Clients;
public class FormValidationVM {
private Pojo pojo;
@Init
public void init() {
pojo = new Pojo();
}
@Command("submit")
public void submit() {
Clients.showNotification("submitted");
}
public Validator getPojoValidator() {
return new AbstractValidator() {
public void validate(ValidationContext ctx) {
Pojo pojoProxy = (Pojo) ctx.getProperty().getValue();
validateMinLength(ctx, "name", pojoProxy.getName(), 3);
validateMinLength(ctx, "address", pojoProxy.getAddress(), 3);
}
private void validateMinLength(ValidationContext ctx, String field, String value, int minLength) {
if(value == null || value.length() < minLength) {
addInvalidMessage(ctx, field, field + " : too short (min length " + minLength + ")");
};
}
};
}
public Pojo getPojo() {
return pojo;
}
public static class Pojo {
private String name;
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
}