ca.odell.glazedlists
Class CollectionList<S,E>

java.lang.Object
  extended by ca.odell.glazedlists.AbstractEventList<E>
      extended by ca.odell.glazedlists.TransformedList<S,E>
          extended by ca.odell.glazedlists.CollectionList<S,E>
All Implemented Interfaces:
ListEventListener<S>, EventList<E>, Iterable<E>, Collection<E>, EventListener, List<E>
Direct Known Subclasses:
CompositeList

public class CollectionList<S,E>
extends TransformedList<S,E>
implements ListEventListener<S>

A list that acts like a tree in that it contains child elements to nodes contained in another list. An example usage would be to wrap a parent list containing record albums and use the CollectionList to display the songs on the album.

The actual mapping from the parent list to the child list (record to songs in the above example) is done by a CollectionList.Model that is provided to the constructor.

EventList Overview
Writable:only set(int,Object) and remove(int)
Concurrency:thread ready, not thread safe
Performance:reads: O(log N), writes O(log N)
Memory:96 bytes per element
Unit Tests:N/A
Issues: 96 162 257 265

Author:
Rob Eden, Jesse Wilson
See Also:
CollectionList.Model

Nested Class Summary
static interface CollectionList.Model<E,S>
          Provides the logic to map a parent record (e.g., a records album) to its children (e.g., the songs on the record).
 
Field Summary
 
Fields inherited from class ca.odell.glazedlists.TransformedList
source
 
Fields inherited from class ca.odell.glazedlists.AbstractEventList
publisher, readWriteLock, updates
 
Constructor Summary
CollectionList(EventList<S> source, CollectionList.Model<S,E> model)
          Create a CollectionList with its contents being the children of the elements in the specified source EventList.
 
Method Summary
 int childEndingIndex(int parentIndex)
          Return the index of the last child in the CollectionList for the given parent index.
 int childStartingIndex(int parentIndex)
          Return the index of the first child in the CollectionList for the given parent index.
 E get(int index)
          Returns the element at the specified position in this list.
 void listChanged(ListEvent<S> listChanges)
          Handle changes in the parent list.
 E remove(int index)
          Removes the element at the specified position in this list (optional operation). Shifts any subsequent elements to the left (subtracts one from their indices). Returns the element that was removed from the list.
 E set(int index, E value)
          Replaces the element at the specified position in this list with the specified element (optional operation).
 int size()
          Returns the number of elements in this list. If this list contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.
 
Methods inherited from class ca.odell.glazedlists.TransformedList
add, addAll, clear, dispose, getSourceIndex, isWritable, removeAll, retainAll
 
Methods inherited from class ca.odell.glazedlists.AbstractEventList
add, addAll, addListEventListener, contains, containsAll, equals, getPublisher, getReadWriteLock, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, removeListEventListener, subList, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CollectionList

public CollectionList(EventList<S> source,
                      CollectionList.Model<S,E> model)
Create a CollectionList with its contents being the children of the elements in the specified source EventList.

Method Detail

size

public int size()
Returns the number of elements in this list. If this list contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.

Specified by:
size in interface Collection<E>
Specified by:
size in interface List<E>
Overrides:
size in class TransformedList<S,E>
Returns:
the number of elements in this list.

get

public E get(int index)
Returns the element at the specified position in this list.

Specified by:
get in interface List<E>
Overrides:
get in class TransformedList<S,E>
Parameters:
index - index of element to return.
Returns:
the element at the specified position in this list.

set

public E set(int index,
             E value)
Replaces the element at the specified position in this list with the specified element (optional operation).

Specified by:
set in interface List<E>
Overrides:
set in class TransformedList<S,E>
Parameters:
index - index of element to replace.
value - element to be stored at the specified position.
Returns:
the element previously at the specified position.

remove

public E remove(int index)
Removes the element at the specified position in this list (optional operation). Shifts any subsequent elements to the left (subtracts one from their indices). Returns the element that was removed from the list.

Specified by:
remove in interface List<E>
Overrides:
remove in class TransformedList<S,E>
Parameters:
index - the index of the element to removed.
Returns:
the element previously at the specified position.

childStartingIndex

public int childStartingIndex(int parentIndex)
Return the index of the first child in the CollectionList for the given parent index. This can be very useful for things like selecting the children in a CollectionList when the parent is selected in another list.

See Also:
childEndingIndex(int)

childEndingIndex

public int childEndingIndex(int parentIndex)
Return the index of the last child in the CollectionList for the given parent index. This can be very useful for things like selecting the children in a CollectionList when the parent is selected in another list.

See Also:
childStartingIndex(int)

listChanged

public void listChanged(ListEvent<S> listChanges)
Handle changes in the parent list. We'll need to update our node list sizes.

Specified by:
listChanged in interface ListEventListener<S>
Specified by:
listChanged in class TransformedList<S,E>


Glazed Lists, Copyright © 2003-2006 publicobject.com, O'Dell Engineering.
Documentation build by jessewilson at 2006-05-23 22:33