/* CollectionIndexComposer.java Purpose: Description: History: Created by Dennis Copyright (C) 2011 Potix Corporation. All Rights Reserved. */ package org.zkoss.zktest.bind.issue; import java.util.Map; import org.zkoss.bind.Form; import org.zkoss.bind.Property; import org.zkoss.bind.ValidationContext; import org.zkoss.bind.Validator; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.validator.AbstractValidator; import org.zkoss.lang.Objects; /** * @author Dennis Chen * */ public class F00864ValidationContextEasier { Person person; public F00864ValidationContextEasier() { person = new Person(); } public Validator getValidator1(){ return new AbstractValidator() { public void validate(ValidationContext ctx) { Form form = (Form)ctx.getProperty().getValue(); Map<String,Property> beanProps = ctx.getProperties(ctx.getProperty().getBase()); Map<String,Property> formProps = ctx.getProperties(ctx.getProperty().getValue()); String name1 = (String)beanProps.get("name").getValue(); Integer age1 = (Integer)beanProps.get("age").getValue(); String name2 = (String)formProps.get("name").getValue(); Integer age2 = (Integer)formProps.get("age").getValue(); if(!beanProps.get("name").getBase().equals(person)){ addInvalidMessage(ctx, "error : base of name is not person"); }else if(!beanProps.get("age").getBase().equals(person)){ addInvalidMessage(ctx, "error : base of age is not person"); }else if(!formProps.get("name").getBase().equals(form)){ addInvalidMessage(ctx, "error : base of name is not form"); }else if(!formProps.get("age").getBase().equals(form)){ addInvalidMessage(ctx, "error : base of age is not form"); }else if(!Objects.equals(name1,name2)){ addInvalidMessage(ctx, "error : name is not equal:"+name1+","+name2); }else if(!Objects.equals(age1,age2)){ addInvalidMessage(ctx, "error : age is not equal:"+age1+","+age2); }else if(formProps.size()!=2){ addInvalidMessage(ctx, "error : form props size is "+formProps.size()); }else if(beanProps.size()!=3){//include the form(.) addInvalidMessage(ctx, "error : bean props size is "+beanProps.size()); } } }; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } @Command({"save1"}) public void save(){ } static public class Person { String name; int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } }