KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jimm > datavision > gui > SortedListModel


1 package jimm.datavision.gui;
2 import javax.swing.AbstractListModel JavaDoc;
3 import java.util.ArrayList JavaDoc;
4 import java.util.Iterator JavaDoc;
5
6 /**
7  * Implements a sorted list model suitable for use with a <code>JList</code>.
8  *
9  * @author Jim Menard, <a HREF="mailto:jimm@io.com">jimm@io.com</a>
10  */

11 public class SortedListModel extends AbstractListModel JavaDoc {
12
13 ArrayList JavaDoc list;
14
15 public SortedListModel() {
16     list = new ArrayList JavaDoc();
17 }
18
19 public void add(Comparable JavaDoc obj) {
20     int size = list.size();
21     if (size == 0) {
22     list.add(obj);
23     fireIntervalAdded(this, 0, 0);
24     return;
25     }
26
27     // Add in list, sorted
28
for (int i = 0; i < list.size(); ++i) {
29     if (obj.compareTo(list.get(i)) < 0) {
30         list.add(i, obj);
31         fireIntervalAdded(this, i , i);
32         return;
33     }
34     }
35
36     list.add(obj);
37     fireIntervalAdded(this, size, size);
38 }
39
40 public void remove(int index) {
41     list.remove(index);
42     fireIntervalRemoved(this, index, index);
43 }
44
45 public void removeAllElements() {
46     int size = list.size();
47     if (size > 0) {
48     list.clear();
49     fireIntervalRemoved(this, 0, size - 1);
50     }
51 }
52
53 public Iterator JavaDoc iterator() { return list.iterator(); }
54
55 public int getSize() { return list.size(); }
56
57 public Object JavaDoc getElementAt(int index) { return list.get(index); }
58
59 public Object JavaDoc[] toArray() { return list.toArray(); }
60
61 }
62
Popular Tags