- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<E>
-
- javafx.collections.ObservableListBase<E>
-
- javafx.collections.transformation.TransformationList<E,F>
-
- Type Parameters:
E
- the type parameter of this listF
- the upper bound of the type of the source list
- All Implemented Interfaces:
Iterable<E>
,Collection<E>
,List<E>
,Observable
,ObservableList<E>
- Direct Known Subclasses:
FilteredList
,SortedList
public abstract class TransformationList<E,F> extends ObservableListBase<E> implements ObservableList<E>
A base class for all lists that wrap another list in a way that changes (transforms) the wrapped list's elements, order, size, or structure. If the source list is observable, a listener is automatically added to it and the events are delegated tosourceChanged(javafx.collections.ListChangeListener.Change)
.- Since:
- JavaFX 8.0
-
-
Field Summary
-
Fields inherited from class java.util.AbstractList
modCount
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
TransformationList(ObservableList<? extends F> source)
Creates a new Transformation list wrapped around the source list.
-
Method Summary
Modifier and Type Method Description ObservableList<? extends F>
getSource()
The source list specified in the constructor of this transformation list.abstract int
getSourceIndex(int index)
Maps the index of this list's element to an index in the direct source list.int
getSourceIndexFor(ObservableList<?> list, int index)
Maps the index of this list's element to an index of the providedlist
.abstract int
getViewIndex(int index)
Maps the index of the direct source list's element to an index in this list.boolean
isInTransformationChain(ObservableList<?> list)
Checks whether the provided list is in the chain under thisTransformationList
.protected abstract void
sourceChanged(ListChangeListener.Change<? extends F> c)
Called when a change from the source is triggered.-
Methods inherited from class javafx.collections.ObservableListBase
addAll, addListener, addListener, beginChange, endChange, fireChange, hasListeners, nextAdd, nextPermutation, nextRemove, nextRemove, nextReplace, nextSet, nextUpdate, remove, removeAll, removeListener, removeListener, retainAll, setAll, setAll
-
Methods inherited from class java.util.AbstractList
add, add, addAll, clear, equals, get, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, remove, removeRange, set, subList
-
Methods inherited from class java.util.AbstractCollection
addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, size, toArray, toArray, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Methods inherited from interface java.util.List
add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray
-
Methods inherited from interface javafx.beans.Observable
addListener, removeListener
-
Methods inherited from interface javafx.collections.ObservableList
addAll, addListener, filtered, remove, removeAll, removeListener, retainAll, setAll, setAll, sorted, sorted
-
-
-
-
Constructor Detail
-
TransformationList
protected TransformationList(ObservableList<? extends F> source)
Creates a new Transformation list wrapped around the source list.- Parameters:
source
- the wrapped list
-
-
Method Detail
-
getSource
public final ObservableList<? extends F> getSource()
The source list specified in the constructor of this transformation list.- Returns:
- The List that is directly wrapped by this TransformationList
-
isInTransformationChain
public final boolean isInTransformationChain(ObservableList<?> list)
Checks whether the provided list is in the chain under thisTransformationList
. This means the list is either the direct source as returned bygetSource()
or the direct source is aTransformationList
, and the list is in it's transformation chain.- Parameters:
list
- the list to check- Returns:
- true if the list is in the transformation chain as specified above.
-
sourceChanged
protected abstract void sourceChanged(ListChangeListener.Change<? extends F> c)
Called when a change from the source is triggered.- Parameters:
c
- the change
-
getSourceIndex
public abstract int getSourceIndex(int index)
Maps the index of this list's element to an index in the direct source list.- Parameters:
index
- the index in this list- Returns:
- the index of the element's origin in the source list
- See Also:
getSource()
-
getSourceIndexFor
public final int getSourceIndexFor(ObservableList<?> list, int index)
Maps the index of this list's element to an index of the providedlist
. Thelist
must be in the transformation chain.- Parameters:
list
- a list from the transformation chainindex
- the index of an element in this list- Returns:
- the index of the element's origin in the provided list
- See Also:
isInTransformationChain(javafx.collections.ObservableList)
-
getViewIndex
public abstract int getViewIndex(int index)
Maps the index of the direct source list's element to an index in this list.- Parameters:
index
- the index in the source list- Returns:
- the index of the element in this list if it is contained in this list or negative value otherwise
- Since:
- 9
- See Also:
getSource()
,getSourceIndex(int)
-
-