package opendbcopy.gui.model;
import java.util.LinkedList;
import java.util.Observable;
import java.util.Observer;
import java.util.Vector;
import javax.swing.ListModel;
import javax.swing.event.ListDataEvent;
import javax.swing.event.ListDataListener;
import opendbcopy.plugin.model.Model;
public class PluginListModel implements ListModel, Observer {
private Vector modelListeners = new Vector();
private LinkedList list;
public PluginListModel(LinkedList list) {
this.list = list;
}
public void update(Observable o,
Object arg) {
fireContentsChanged();
}
public int getSize() {
return list.size();
}
public Object getElementAt(int index) {
return ((Model) list.get(index)).getTitle();
}
public Model getModelAt(int index) {
return (Model) list.get(index);
}
private void fireContentsChanged() {
int len = modelListeners.size();
ListDataEvent e = new ListDataEvent(this, ListDataEvent.CONTENTS_CHANGED, 0, list.size() - 1);
for (int i = 0; i < len; i++) {
((ListDataListener) modelListeners.elementAt(i)).contentsChanged(e);
}
}
public void addListDataListener(ListDataListener l) {
modelListeners.add(l);
}
public void removeListDataListener(ListDataListener l) {
modelListeners.remove(l);
}
}