package com.bagri.tools.vvm.ui; import javax.swing.*; import java.util.Iterator; import java.util.List; import java.util.SortedSet; import java.util.TreeSet; /** * @author <a href="mailto:roman.orekhov@db.com">Roman Orekhov</a> * Date: 31.07.14. */ public class SortedListModel<E> extends AbstractListModel<E> { SortedSet<E> model; public SortedListModel() { model = new TreeSet<E>(); } public int getSize() { return model.size(); } public E getElementAt(int index) { return (E) model.toArray()[index]; } public void add(E element) { if (model.add(element)) { fireContentsChanged(this, 0, getSize()); } } public void addAll(List<E> elements) { // Collection c = Arrays.asList(elements); model.addAll(elements); fireContentsChanged(this, 0, getSize()); } public void clear() { model.clear(); fireContentsChanged(this, 0, getSize()); } public boolean contains(E element) { return model.contains(element); } public E firstElement() { return model.first(); } public Iterator<E> iterator() { return model.iterator(); } public E lastElement() { return model.last(); } public boolean removeElement(E element) { boolean removed = model.remove(element); if (removed) { fireContentsChanged(this, 0, getSize()); } return removed; } }