19 package org.turro.contacts.model;
21 import java.util.HashSet;
23 import org.turro.contacts.content.DirectoryType;
24 import org.turro.elephant.util.Images;
25 import org.turro.i18n.I_;
26 import org.turro.util.PhraseBuilder;
27 import org.zkoss.zk.ui.event.Event;
28 import org.zkoss.zk.ui.event.EventListener;
29 import org.zkoss.zk.ui.event.Events;
30 import org.zkoss.zk.ui.event.SelectEvent;
31 import org.zkoss.zul.Bandbox;
32 import org.zkoss.zul.Bandpopup;
33 import org.zkoss.zul.Listbox;
34 import org.zkoss.zul.Listhead;
35 import org.zkoss.zul.Listheader;
36 import org.zkoss.zul.Listitem;
44 private Set<DirectoryType> typeSet =
new HashSet<DirectoryType>();
45 private Listbox types;
57 this.typeSet = typeSet;
62 private void addPopup() {
63 Bandpopup popup =
new Bandpopup();
66 types =
new Listbox();
67 types.setWidth(
"300px");
68 types.setMultiple(
true);
69 types.setCheckmark(
true);
70 Listhead lh =
new Listhead();
71 lh.appendChild(
new Listheader(
I_.
get(
"Type")));
72 types.appendChild(lh);
73 types.addEventListener(Events.ON_SELECT,
new EventListener() {
75 public void onEvent(Event event)
throws Exception {
76 Set<Listitem> selected = ((SelectEvent) event).getSelectedItems();
77 if(selected !=
null) {
78 for(Listitem li : selected) {
82 Set<Listitem> unselected = ((SelectEvent) event).getUnselectedItems();
83 if(unselected !=
null) {
84 for(Listitem li : unselected) {
85 typeSet.remove((DirectoryType) li.getValue());
91 popup.appendChild(types);
93 for(DirectoryType is : DirectoryType.values()) {
94 Listitem li =
new Listitem(I_.byKey(is.toString()));
95 li.setImage(Images.getImage(is.getImage()));
97 types.appendChild(li);
101 private void updateCheckMarks() {
102 for(Object obj : types.getChildren()) {
103 if(obj instanceof Listitem) {
104 Listitem li = (Listitem) obj;
105 li.setSelected(typeSet.contains(li.getValue()));
111 private void updateText() {
112 PhraseBuilder pb =
new PhraseBuilder();
113 for(Object obj : types.getChildren()) {
114 if(obj instanceof Listitem) {
115 Listitem li = (Listitem) obj;
116 if(li.isSelected()) {
117 pb.addWord(I_.byKey(li.getValue().toString()));
118 pb.addPendingSeparator(
",");
123 setText(pb.toString());
static String get(String msg)