|
abstract void | doRender (Listitem item, T data, int index) |
|
Original source from Potix found at: http://www.zkoss.org/zkdemo/listbox/dual_listbox
The original is a piece-of-art code, changes were made to support unknown-type items and allow multiple selections.
- Author
- Lluis TurrĂ³ Cutiller lluis.nosp@m.@tur.nosp@m.ro.or.nosp@m.g
Definition at line 50 of file DualSelectorListbox.java.
◆ DualSelectorListbox()
Definition at line 60 of file DualSelectorListbox.java.
61 Executions.createComponents(
"/WEB-INF/_zul/bs/comps/dualSelector/dualSelectorListbox.zul",
this,
null);
62 Selectors.wireComponents(
this,
this,
false);
63 Selectors.wireEventListeners(
this,
this);
64 chosenLb.setModel(selectedModel =
new ListModelList<T>());
65 if(chosenLb.getModel() instanceof Selectable) {
66 ((Selectable) chosenLb.getModel()).setMultiple(
true);
68 candidateLb.setItemRenderer(
this);
69 chosenLb.setItemRenderer(
this);
◆ bottom()
Definition at line 150 of file DualSelectorListbox.java.
151 Iterator<T> iterator =
new LinkedHashSet<T>(selectedModel.getSelection()).iterator();
152 while (iterator.hasNext()) {
153 T selectedItem = iterator.next();
154 selectedModel.remove(selectedItem);
155 selectedModel.add(selectedItem);
156 selectedModel.addToSelection(selectedItem);
158 Events.postEvent(
new ChooseEvent(
this,
null));
◆ chooseAllItem()
Definition at line 83 of file DualSelectorListbox.java.
84 for (
int i = 0, j = optionsModel.getSize(); i < j; i++) {
85 selectedModel.add(optionsModel.getElementAt(i));
◆ chooseItem()
◆ doRender()
◆ down()
Definition at line 131 of file DualSelectorListbox.java.
132 Set<T> selected = selectedModel.getSelection();
133 if (selected.isEmpty()) {
136 int index = selectedModel.indexOf(selected.iterator().next());
137 if (index == selectedModel.size() - selected.size() || index < 0) {
140 ArrayList<T> clone = (ArrayList<T>)
new ArrayList<T>(selected).clone();
141 selectedModel.removeAll(selected);
142 selectedModel.addAll(++index, clone);
143 for(T selectedItem : clone) {
144 selectedModel.addToSelection(selectedItem);
146 Events.postEvent(
new ChooseEvent(
this,
null));
◆ getChosenDataList()
◆ render()
◆ setModel()
Set new candidate ListModelList.
- Parameters
-
candidate | is the data of candidate list model |
Definition at line 166 of file DualSelectorListbox.java.
167 candidateLb.setModel(this.optionsModel =
new ListModelList<T>(candidate));
168 selectedModel.clear();
169 if(candidateLb.getModel() instanceof Selectable) {
170 ((Selectable) candidateLb.getModel()).setMultiple(
true);
◆ top()
Definition at line 99 of file DualSelectorListbox.java.
101 Iterator<T> iterator =
new LinkedHashSet<T>(selectedModel.getSelection()).iterator();
102 while (iterator.hasNext()) {
103 T selectedItem = iterator.next();
104 selectedModel.remove(selectedItem);
105 selectedModel.add(i++, selectedItem);
106 selectedModel.addToSelection(selectedItem);
108 Events.postEvent(
new ChooseEvent(
this,
null));
◆ unchooseAll()
Definition at line 91 of file DualSelectorListbox.java.
92 for (
int i = 0, j = selectedModel.getSize(); i < j; i++) {
93 optionsModel.add(selectedModel.getElementAt(i));
95 selectedModel.clear();
◆ unchooseItem()
◆ up()
Definition at line 112 of file DualSelectorListbox.java.
113 Set<T> selected = selectedModel.getSelection();
114 if (selected.isEmpty()) {
117 int index = selectedModel.indexOf(selected.iterator().next());
118 if (index == 0 || index < 0) {
121 ArrayList<T> clone = (ArrayList<T>)
new ArrayList<T>(selected).clone();
122 selectedModel.removeAll(selected);
123 selectedModel.addAll(--index, clone);
124 for(T selectedItem : clone) {
125 selectedModel.addToSelection(selectedItem);
127 Events.postEvent(
new ChooseEvent(
this,
null));
The documentation for this class was generated from the following file: