/* ListboxModelVM.java Purpose: Description: History: Created by Dennis Copyright (C) 2011 Potix Corporation. All Rights Reserved. */ package org.zkoss.zktest.bind.issue; import java.util.ArrayList; import java.util.List; import java.util.Set; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.DependsOn; import org.zkoss.bind.annotation.NotifyChange; import org.zkoss.zul.ListModelList; /** * @author Dennis Chen * */ public class B00758Indirect { private List<Person> _persons; public B00758Indirect() { _persons = new ListModelList<Person>(); for (int j = 0; j < 4; ++j) { _persons.add(new Person("First" + j, "Last" + j)); } } public List<Person> getPersons() { return _persons; } @Command @NotifyChange("persons[0]") public void chang1stPerson() { _persons.set(0, new Person("Henri", "Chen")); } @Command @NotifyChange("persons[0].firstName") public void change1stPersonFirstName() { _persons.get(0).setFirstName("Tom"); } public class Person { private String firstName; private String lastName; public Person(String firstName, String lastName) { this.firstName = firstName; this.lastName = lastName; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @DependsOn({ "firstName", "lastName" }) public String getFullName() { return firstName + " " + lastName; } } }