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.NotifyChange; public class B01873SelectedItemOnClick { private List<Item> items; private Item selectedItem; private SubItem clickedSubItem; public B01873SelectedItemOnClick() { items = new ArrayList<Item>(); items.add(new Item("Item 1")); items.add(new Item("Item 2")); items.add(new Item("Item 3")); } public List<Item> getItems() { return items; } public SubItem getClickedSubItem() { return clickedSubItem; } public void setClickedSubItem(SubItem clickedSubItem) { this.clickedSubItem = clickedSubItem; } public Item getSelectedItem() { return selectedItem; } public void setSelectedItem(Item selectedItem) { this.selectedItem = selectedItem; } @Command @NotifyChange("clickedSubItem") public void onClickSubItem(@BindingParam("subitem") SubItem sub){ clickedSubItem = sub; } public static class Item { private String name; List<SubItem> subItems; public Item(String name) { this.name = name; subItems = new ArrayList<SubItem>(); subItems.add(new SubItem(name+"-sub1")); subItems.add(new SubItem(name+"-sub2")); } public List<SubItem> getSubItems(){ return subItems; } public String getName() { return name; } } public static class SubItem { private String name; public SubItem(String name) { this.name = name; } public String getName() { return name; } } }