/* B01185CollectionBindingNPE.java
Purpose:
Description:
History:
Jun 25, 2012, Created by Ian Tsai(Zanyking)
Copyright (C) 2010 Potix Corporation. All Rights Reserved.
{{IS_RIGHT
This program is distributed under ZOL in the hope that
it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.zktest.bind.issue;
import java.util.ArrayList;
import java.util.List;
import org.zkoss.bind.annotation.BindingParam;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.Init;
import org.zkoss.bind.annotation.NotifyChange;
import org.zkoss.zk.ui.Component;
/**
* @author Ian Y.T Tsai(zanyking)
*
*/
public class B01185CollectionBindingNPE {
List<URL> URL;
List<Person> person;
@Init
public void init(){
URL = new ArrayList<URL>();
person = new ArrayList<Person>();
}
@Command @NotifyChange("URL")
public void addMore(){
if(URL != null && URL.size()>0){
URL.add(new URL());
}else{
URL = new ArrayList<URL>();
URL.add(new URL());
}
}
@Command @NotifyChange("URL")
public void remove(@BindingParam("index") int index){
URL.remove(index);
}
@Command @NotifyChange("person")
public void addMorePerson(){
if(person != null && person.size()>0){
person.add(new Person());
}else{
person = new ArrayList<Person>();
person.add(new Person());
}
}
@Command @NotifyChange("person")
public void removePerson(@BindingParam("index") int index){
person.remove(index);
}
public List<URL> getURL() {
return URL;
}
public void setURL(List<URL> uRL) {
URL = uRL;
}
public List<Person> getPerson() {
return person;
}
public void setPerson(List<Person> person) {
this.person = person;
}
public static class Person {
private String name;
private String age;
public String getName() {
return name;
}
public String getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(String age) {
this.age = age;
}
}
public static class URL {
private String url;
private String port;
public String getUrl() {
return url;
}
public String getPort() {
return port;
}
public void setUrl(String url) {
this.url = url;
}
public void setPort(String port) {
this.port = port;
}
}
}