package org.csdgn.maru.swing; import java.util.ArrayList; import javax.swing.AbstractListModel; public class ArrayListModel<E> extends AbstractListModel<E> { private static final long serialVersionUID = 5698969358046633170L; private final ArrayList<E> list; public ArrayListModel() { list = new ArrayList<E>(); } public ArrayListModel(ArrayList<E> wrap) { list = wrap; } public ArrayList<E> getList() { return list; } public void add(E element) { int index = list.size(); list.add(element); fireIntervalAdded(this, index, index); } public void remove(int index) { list.remove(index); fireIntervalRemoved(this, index, index); } public void remove(E e) { remove(list.indexOf(e)); } public E get(int index) { return list.get(index); } @Override public int getSize() { return list.size(); } @Override public E getElementAt(int index) { return list.get(index); } public void fireUpdate() { fireContentsChanged(this,0,getSize()); } }