Class ArrayListModel<E>

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.ArrayList<E>
com.jgoodies.common.collect.ArrayListModel<E>
Type Parameters:
E - the type of the list elements
All Implemented Interfaces:
ObservableList<E>, ObservableList2<E>, Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess, SequencedCollection<E>, ListModel

public final class ArrayListModel<E> extends ArrayList<E> implements ObservableList2<E>
Adds ListModel capabilities to its superclass. It allows to observe changes in the content and structure. Useful for Lists that are bound to list views such as JList, JComboBox and JTable.
See Also:
  • Field Details

  • Constructor Details

    • ArrayListModel

      public ArrayListModel()
      Constructs an empty list with an initial capacity of ten.
    • ArrayListModel

      public ArrayListModel(int initialCapacity)
      Constructs an empty list with the specified initial capacity.
      Parameters:
      initialCapacity - the initial capacity of the list.
      Throws:
      IllegalArgumentException - if the specified initial capacity is negative
    • ArrayListModel

      public ArrayListModel(Collection<? extends E> c)
      Constructs a list containing the elements of the specified collection, in the order they are returned by the collection's iterator. The ArrayListModel instance has an initial capacity of 110% the size of the specified collection.
      Parameters:
      c - the collection whose elements are to be placed into this list.
      Throws:
      NullPointerException - if the specified collection is null
  • Method Details

    • add

      public final void add(int index, E element)
      Specified by:
      add in interface List<E>
      Overrides:
      add in class ArrayList<E>
    • add

      public final boolean add(E e)
      Specified by:
      add in interface Collection<E>
      Specified by:
      add in interface List<E>
      Overrides:
      add in class ArrayList<E>
    • addAll

      public final boolean addAll(int index, Collection<? extends E> c)
      Specified by:
      addAll in interface List<E>
      Overrides:
      addAll in class ArrayList<E>
    • addAll

      public final boolean addAll(Collection<? extends E> c)
      Specified by:
      addAll in interface Collection<E>
      Specified by:
      addAll in interface List<E>
      Overrides:
      addAll in class ArrayList<E>
    • removeAll

      public boolean removeAll(Collection<?> c)
      Removes from this collection all of its elements that are contained in the specified collection (optional operation).

      This implementation iterates over this collection, checking each element returned by the iterator in turn to see if it's contained in the specified collection. If it's so contained, it's removed from this collection with the iterator's remove method.

      Note that this implementation will throw an UnsupportedOperationException if the iterator returned by the iterator method does not implement the remove method and this collection contains one or more elements in common with the specified collection.

      Specified by:
      removeAll in interface Collection<E>
      Specified by:
      removeAll in interface List<E>
      Overrides:
      removeAll in class ArrayList<E>
      Parameters:
      c - elements to be removed from this collection.
      Returns:
      true if this collection changed as a result of the call.
      Throws:
      UnsupportedOperationException - if the removeAll method is not supported by this collection.
      NullPointerException - if the specified collection is null.
      See Also:
    • retainAll

      public boolean retainAll(Collection<?> c)
      Retains only the elements in this collection that are contained in the specified collection (optional operation). In other words, removes from this collection all of its elements that are not contained in the specified collection.

      This implementation iterates over this collection, checking each element returned by the iterator in turn to see if it's contained in the specified collection. If it's not so contained, it's removed from this collection with the iterator's remove method.

      Note that this implementation will throw an UnsupportedOperationException if the iterator returned by the iterator method does not implement the remove method and this collection contains one or more elements not present in the specified collection.

      Specified by:
      retainAll in interface Collection<E>
      Specified by:
      retainAll in interface List<E>
      Overrides:
      retainAll in class ArrayList<E>
      Parameters:
      c - elements to be retained in this collection.
      Returns:
      true if this collection changed as a result of the call.
      Throws:
      UnsupportedOperationException - if the retainAll method is not supported by this Collection.
      NullPointerException - if the specified collection is null.
      See Also:
    • clear

      public final void clear()
      Specified by:
      clear in interface Collection<E>
      Specified by:
      clear in interface List<E>
      Overrides:
      clear in class ArrayList<E>
    • remove

      public final E remove(int index)
      Specified by:
      remove in interface List<E>
      Overrides:
      remove in class ArrayList<E>
    • remove

      public final boolean remove(Object o)
      Specified by:
      remove in interface Collection<E>
      Specified by:
      remove in interface List<E>
      Overrides:
      remove in class ArrayList<E>
    • removeRange

      protected final void removeRange(int fromIndex, int toIndex)
      Overrides:
      removeRange in class ArrayList<E>
    • set

      public final E set(int index, E element)
      Specified by:
      set in interface List<E>
      Overrides:
      set in class ArrayList<E>
    • addListDataListener

      public final void addListDataListener(ListDataListener l)
      Specified by:
      addListDataListener in interface ListModel<E>
    • removeListDataListener

      public final void removeListDataListener(ListDataListener l)
      Specified by:
      removeListDataListener in interface ListModel<E>
    • getElementAt

      public final Object getElementAt(int index)
      Specified by:
      getElementAt in interface ListModel<E>
    • getSize

      public final int getSize()
      Specified by:
      getSize in interface ListModel<E>
    • fireContentsChanged

      public final void fireContentsChanged(int index)
      Description copied from interface: ObservableList2
      Notifies all registered ListDataListeners that the element at the specified index has changed. Useful if there's a content change without any structural change.

      This method must be called after the element of the list changes.

      Specified by:
      fireContentsChanged in interface ObservableList2<E>
      Parameters:
      index - the index of the element that has changed
      See Also:
    • fireContentsChanged

      public final void fireContentsChanged(int index0, int index1)
      Notifies all registered ListDataListeners that the element at the specified index has changed. Useful if there's a content change without any structural change.

      This method must be called after one or more elements of the list change. The changed elements are specified by the closed interval index0, index1 -- the end points are included. Note that index0 need not be less than or equal to index1.

      Specified by:
      fireContentsChanged in interface ObservableList2<E>
      Parameters:
      index0 - one end of the new interval
      index1 - the other end of the new interval
      Since:
      1.7
      See Also:
    • getListDataListeners

      public final ListDataListener[] getListDataListeners()
      Returns an array of all the list data listeners registered on this ArrayListModel.
      Returns:
      all of this model's ListDataListeners, or an empty array if no list data listeners are currently registered
      See Also:
    • fireIntervalAdded

      private void fireIntervalAdded(int index0, int index1)
      This method must be called after one or more elements are added to the model. The new elements are specified by a closed interval index0, index1 -- the end points are included. Note that index0 need not be less than or equal to index1.
      Parameters:
      index0 - one end of the new interval
      index1 - the other end of the new interval
      See Also:
    • fireIntervalRemoved

      private void fireIntervalRemoved(int index0, int index1)
      This method must be called after one or more elements are removed from the model. index0 and index1 are the end points of the interval that's been removed. Note that index0 need not be less than or equal to index1.
      Parameters:
      index0 - one end of the removed interval, including index0
      index1 - the other end of the removed interval, including index1
      See Also:
    • getEventListenerList

      private EventListenerList getEventListenerList()
      Lazily initializes and returns the event listener list used to notify registered listeners.
      Returns:
      the event listener list used to notify listeners