Fix calculation of project size.
[jSite.git] / src / de / todesbaum / util / swing / SortedListModel.java
index 21823be..39a5ce2 100644 (file)
@@ -1,6 +1,5 @@
 /*
- * todesbaum-lib -
- * Copyright (C) 2006 David Roden
+ * jSite - SortedListModel.java - Copyright © 2006–2012 David Roden
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -28,13 +27,15 @@ import java.util.ListIterator;
 
 import javax.swing.AbstractListModel;
 
-
 /**
+ * @param <T>
+ *            The type of the elements
  * @author David Roden &lt;droden@gmail.com&gt;
  */
-public class SortedListModel extends AbstractListModel implements List {
+public class SortedListModel<T extends Comparable<T>> extends AbstractListModel implements List<T> {
 
-       private List elements = new ArrayList();
+       /** The elements. */
+       private List<T> elements = new ArrayList<T>();
 
        /**
         * {@inheritDoc}
@@ -53,7 +54,7 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public void add(int index, Object element) {
+       public void add(int index, T element) {
                elements.add(index, element);
                Collections.sort(elements);
                fireContentsChanged(this, 0, size());
@@ -62,7 +63,7 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public boolean add(Object o) {
+       public boolean add(T o) {
                boolean result = elements.add(o);
                Collections.sort(elements);
                fireContentsChanged(this, 0, size());
@@ -72,7 +73,7 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public boolean addAll(Collection c) {
+       public boolean addAll(Collection<? extends T> c) {
                boolean result = elements.addAll(c);
                Collections.sort(elements);
                fireContentsChanged(this, 0, size());
@@ -82,7 +83,7 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public boolean addAll(int index, Collection c) {
+       public boolean addAll(int index, Collection<? extends T> c) {
                boolean result = elements.addAll(index, c);
                Collections.sort(elements);
                fireContentsChanged(this, 0, size());
@@ -107,13 +108,14 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public boolean containsAll(Collection c) {
+       public boolean containsAll(Collection<?> c) {
                return elements.containsAll(c);
        }
 
        /**
         * {@inheritDoc}
         */
+       @Override
        public boolean equals(Object o) {
                return elements.equals(o);
        }
@@ -121,13 +123,14 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public Object get(int index) {
+       public T get(int index) {
                return elements.get(index);
        }
 
        /**
         * {@inheritDoc}
         */
+       @Override
        public int hashCode() {
                return elements.hashCode();
        }
@@ -149,7 +152,7 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public Iterator iterator() {
+       public Iterator<T> iterator() {
                return elements.iterator();
        }
 
@@ -163,21 +166,21 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public ListIterator listIterator() {
+       public ListIterator<T> listIterator() {
                return elements.listIterator();
        }
 
        /**
         * {@inheritDoc}
         */
-       public ListIterator listIterator(int index) {
+       public ListIterator<T> listIterator(int index) {
                return elements.listIterator(index);
        }
 
        /**
         * {@inheritDoc}
         */
-       public Object remove(int index) {
+       public T remove(int index) {
                fireContentsChanged(this, 0, size());
                return elements.remove(index);
        }
@@ -193,7 +196,7 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public boolean removeAll(Collection c) {
+       public boolean removeAll(Collection<?> c) {
                fireContentsChanged(this, 0, size());
                return elements.removeAll(c);
        }
@@ -201,7 +204,7 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public boolean retainAll(Collection c) {
+       public boolean retainAll(Collection<?> c) {
                fireContentsChanged(this, 0, size());
                return elements.retainAll(c);
        }
@@ -209,8 +212,8 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public Object set(int index, Object element) {
-               Object result = elements.set(index, element);
+       public T set(int index, T element) {
+               T result = elements.set(index, element);
                Collections.sort(elements);
                fireContentsChanged(this, 0, size());
                return result;
@@ -226,7 +229,7 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public List subList(int fromIndex, int toIndex) {
+       public List<T> subList(int fromIndex, int toIndex) {
                return elements.subList(fromIndex, toIndex);
        }
 
@@ -240,7 +243,7 @@ public class SortedListModel extends AbstractListModel implements List {
        /**
         * {@inheritDoc}
         */
-       public Object[] toArray(Object[] a) {
+       public <U extends Object> U[] toArray(U[] a) {
                return elements.toArray(a);
        }