001 package nl.cwi.sen1.gui.plugin.data; 002 003 import java.util.Collection; 004 import java.util.Iterator; 005 import java.util.List; 006 007 import javax.swing.AbstractListModel; 008 009 public class ListModel<E> extends AbstractListModel { 010 private List<E> list; 011 012 public ListModel(List<E> list) { 013 this.list = list; 014 } 015 016 public void setList(List<E> list) { 017 this.list = list; 018 } 019 020 public Object getElementAt(int index) { 021 if (index >= 0 && index < list.size()) { 022 return list.get(index); 023 } 024 return null; 025 } 026 027 public int getSize() { 028 return list.size(); 029 } 030 031 public void elementAdded() { 032 fireIntervalAdded(list, list.size() - 1, list.size()); 033 } 034 035 public void add(E o) { 036 list.add(list.size(), o); 037 elementAdded(); 038 } 039 040 public void remove(Object o) { 041 list.remove(o); 042 } 043 044 public void removeAll(Collection<?> c) { 045 list.removeAll(c); 046 } 047 048 public void addAll(Collection<? extends E> c) { 049 Iterator<? extends E> iter = c.iterator(); 050 051 while (iter.hasNext()) { 052 list.add(list.size(), iter.next()); 053 } 054 055 fireIntervalAdded(list, list.size() - c.size(), list.size()); 056 } 057 058 public String toString() { 059 return list.toString(); 060 } 061 062 public Iterator<E> iterator() { 063 return list.iterator(); 064 } 065 066 public boolean contains(Object o) { 067 return list.contains(o); 068 } 069 }