/* B80_ZK_2983.java Purpose: Description: History: Tue, Jan 5, 2016 10:20:55 AM, Created by Sefi Copyright (C) Potix Corporation. All Rights Reserved. This program is distributed under LGPL Version 2.1 in the hope that it will be useful, but WITHOUT ANY WARRANTY. */ package org.zkoss.zktest.test2; import org.zkoss.zul.*; import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.NotifyChange; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; /** * * @author Sefi */ public class B80_ZK_2983 { private String simpleText; private List<String> persons; private Set<String> selectedPersons; public B80_ZK_2983() { simpleText = "Value 0"; persons = new ArrayList<String>(); persons.add("Alice"); persons.add("Bob"); selectedPersons = new LinkedHashSet<String>(); selectedPersons.add("Alice"); } @Command("select") @NotifyChange({"simpleText","selectedPersons"}) public void select(@BindingParam("divId") Div divId) { simpleText = "Value 1"; selectedPersons = new LinkedHashSet<String>(); selectedPersons.add("Bob"); divId.invalidate(); // corrupt the selection in the chosenBox. The value is correct but not visible anymore. } // does nothing but the selection in the chosenbox reappears @Command("dummy") @NotifyChange({"simpleText","selectedPersons"}) public void dummy(@BindingParam("divId") Div divId) { // does nothing except notifications } public String getSimpleText() { return simpleText; } public void setSimpleText(String simpleText) { this.simpleText = simpleText; } public List<String> getPersons() { return persons; } public void setPersons(List<String> persons) { this.persons = persons; } public Set<String> getSelectedPersons() { return selectedPersons; } public void setSelectedPersons(Set<String> selectedPersons) { this.selectedPersons = selectedPersons; } }