[Japi-cvs] SF.net SVN: japi: [312] libs/swing-misc/trunk/src/net/sf/japi/swing/misc/ CollectionsLis
Status: Beta
Brought to you by:
christianhujer
From: <chr...@us...> - 2007-01-18 18:44:07
|
Revision: 312 http://svn.sourceforge.net/japi/?rev=312&view=rev Author: christianhujer Date: 2007-01-18 10:44:02 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Adding list model for collections. Added Paths: ----------- libs/swing-misc/trunk/src/net/sf/japi/swing/misc/CollectionsListModel.java Added: libs/swing-misc/trunk/src/net/sf/japi/swing/misc/CollectionsListModel.java =================================================================== --- libs/swing-misc/trunk/src/net/sf/japi/swing/misc/CollectionsListModel.java (rev 0) +++ libs/swing-misc/trunk/src/net/sf/japi/swing/misc/CollectionsListModel.java 2007-01-18 18:44:02 UTC (rev 312) @@ -0,0 +1,200 @@ +package net.sf.japi.swing.misc; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; +import javax.swing.AbstractListModel; + +/** + * A ListModel for {@link java.util.List}. + * @author <a href="mailto:ch...@ri...">Christian Hujer</a> + */ +public class CollectionsListModel<E> extends AbstractListModel implements List<E> { + + /** The list to delegate to. */ + private final List<E> list; + + /** + * Creates a new CollectionsListModel. + * @param list List to delegate to + */ + public CollectionsListModel(final List<E> list) { + this.list = list; + } + + /** {@inheritDoc} */ + public int size() { + return list.size(); + } + + /** {@inheritDoc} */ + public boolean isEmpty() { + return list.isEmpty(); + } + + /** {@inheritDoc} */ + public boolean contains(final Object o) { + return list.contains(o); + } + + /** {@inheritDoc} */ + public Iterator<E> iterator() { + return list.iterator(); + } + + /** {@inheritDoc} */ + public Object[] toArray() { + return list.toArray(); + } + + /** {@inheritDoc} */ + public <T> T[] toArray(final T[] ts) { + return list.toArray(ts); + } + + /** {@inheritDoc} */ + public boolean add(final E e) { + final boolean changed = list.add(e); + final int size = size(); + if (changed) { + fireIntervalRemoved(this, size, size); + } + return changed; + } + + /** {@inheritDoc} */ + public boolean remove(final Object o) { + final int size = size(); + final boolean changed = list.remove(o); + if (changed) { + fireIntervalRemoved(this, size, size); + } + return changed; + } + + /** {@inheritDoc} */ + public boolean containsAll(final Collection<?> objects) { + return list.containsAll(objects); + } + + /** {@inheritDoc} */ + public boolean addAll(final Collection<? extends E> es) { + final int size = size(); + final boolean changed = list.addAll(es); + if (changed) { + fireIntervalAdded(this, size, size()); + } + return changed; + } + + /** {@inheritDoc} */ + public boolean addAll(final int i, final Collection<? extends E> es) { + final int size = size(); + final boolean changed = list.addAll(i, es); + if (changed) { + fireIntervalAdded(this, i, i + size() - size); + } + return changed; + } + + /** {@inheritDoc} */ + public boolean removeAll(final Collection<?> objects) { + final int size = size(); + final boolean changed = list.removeAll(objects); + if (changed) { + fireIntervalRemoved(this, 0, size); + fireIntervalAdded(this, 0, size()); + } + return changed; + } + + /** {@inheritDoc} */ + public boolean retainAll(final Collection<?> objects) { + final int size = size(); + final boolean changed = list.retainAll(objects); + if (changed) { + fireIntervalRemoved(this, 0, size); + fireIntervalAdded(this, 0, size()); + } + return changed; + } + + /** {@inheritDoc} */ + public void clear() { + final int size = size(); + list.clear(); + fireIntervalRemoved(this, 0, size); + } + + /** {@inheritDoc} */ + public boolean equals(final Object o) { + return list.equals(o); + } + + /** {@inheritDoc} */ + public int hashCode() { + return list.hashCode(); + } + + /** {@inheritDoc} */ + public E get(final int i) { + return list.get(i); + } + + /** {@inheritDoc} */ + public E set(final int i, final E e) { + final E oldElement = list.set(i, e); + fireContentsChanged(this, i, i); + return oldElement; + } + + /** {@inheritDoc} */ + public void add(final int i, final E e) { + list.add(i, e); + fireIntervalAdded(this, i, i); + } + + /** {@inheritDoc} */ + public E remove(final int i) { + final E removedElement = list.remove(i); + fireIntervalRemoved(this, i, i); + return removedElement; + } + + /** {@inheritDoc} */ + public int indexOf(final Object o) { + return list.indexOf(o); + } + + /** {@inheritDoc} */ + public int lastIndexOf(final Object o) { + return list.lastIndexOf(o); + } + + /** {@inheritDoc} */ + public ListIterator<E> listIterator() { + return list.listIterator(); + } + + /** {@inheritDoc} */ + public ListIterator<E> listIterator(final int i) { + return list.listIterator(i); + } + + /** {@inheritDoc} */ + public List<E> subList(final int i, final int i1) { + return list.subList(i, i1); + } + + /** {@inheritDoc} */ + public int getSize() { + return size(); + } + + /** {@inheritDoc} */ + public E getElementAt(final int i) { + return get(i); + } + +} // class CollectionsListModel Property changes on: libs/swing-misc/trunk/src/net/sf/japi/swing/misc/CollectionsListModel.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + LF This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |