package notwa.gui.datamodels; import java.util.ArrayList; import java.util.Collection; import javax.swing.DefaultListModel; import notwa.gui.components.KeyValueItem; public class KeyValueListModel<TKey> extends DefaultListModel { public Collection<TKey> toCollection() { ArrayList<TKey> col = new ArrayList<TKey>(); for (int i = 0; i < super.size(); i++) { col.add(getKeyAt(i)); } return col; } public void addElement(TKey key, String value) { super.addElement(new KeyValueItem<TKey>(key, value)); } public TKey getKeyAt(int index) { KeyValueItem<TKey> kvi = (KeyValueItem<TKey>) super.getElementAt(index); return (kvi != null) ? kvi.getKey() : null; } public boolean removeKey(TKey key) { return super.removeElement(new KeyValueItem<TKey>(key)); } }