01: package org.osbl.client.wings.form.editor;
02:
03: import org.wings.SDefaultListModel;
04:
05: import java.util.*;
06:
07: class ListListModel extends SDefaultListModel {
08: Comparator sorter;
09:
10: public void setSorter(Comparator sorter) {
11: this .sorter = sorter;
12: }
13:
14: public void setList(List list) {
15: data.clear();
16: data.addAll(list);
17: fireContentsChanged(this , 0, list.size() - 1);
18: }
19:
20: public List getList() {
21: return data;
22: }
23:
24: public boolean remove(Object object) {
25: int index = data.indexOf(object);
26: if (index != -1) {
27: data.remove(index);
28: fireIntervalRemoved(this , index, index);
29: return true;
30: }
31: return false;
32: }
33:
34: public void add(Object object) {
35: if (!data.contains(object)) {
36: data.add(object);
37: int index = data.size() - 1;
38: if (sorter != null) {
39: Collections.sort(data, sorter);
40: index = data.indexOf(object);
41: }
42: fireIntervalAdded(this, index, index);
43: }
44: }
45: }
|