- Type Parameters:
- E- the type of the elements contained in the List
- All Implemented Interfaces:
- Iterable<E>,- Collection<E>,- List<E>,- Observable,- ObservableList<E>
- Direct Known Subclasses:
- ModifiableObservableListBase,- TransformationList
public abstract class ObservableListBase<E> extends AbstractList<E> implements ObservableList<E>
ObservableList implementations.
 The base class provides two functionalities for the implementing classes.
 -  Listener handling by implementing addListenerandremoveListenermethods.fireChange(javafx.collections.ListChangeListener.Change)method is provided for notifying the listeners with aChangeobject.
-  Methods for building up a ListChangeListener.Changeobject. There are various methods callednext*, likenextAdd(int, int)for new items in the lists ornextRemove(int, java.lang.Object)for an item being removed from the list.These methods must be always enclosed in beginChange()andendChange()block.See the example below. 
  public void removeOddIndexes() {
      beginChange();
      try {
          for (int i = 1; i < size(); ++i) {
              remove(i);
          }
      } finally {
          endChange();
      }
  }
  public void remove(int i) {
      beginChange();
      try {
          E removed = ... //do some stuff that will actually remove the element at index i
          nextRemove(i, removed);
      } finally {
          endChange();
      }
  }
 
 The try/finally blocks in the example are needed only if there's a possibility for an exception to occur
 inside a beginChange() / endChange() block
 
 Note: If you want to create modifiable ObservableList implementation, consider
 using ModifiableObservableListBase as a superclass.
 
 Note: In order to create list with sequential access, you should override AbstractList.listIterator(),
 AbstractList.iterator() methods and use them in AbstractList.get(int), AbstractCollection.size() and other methods accordingly.
- Since:
- JavaFX 8.0
- See Also:
- ObservableList,- ListChangeListener.Change,- ModifiableObservableListBase
- 
Field SummaryFields declared in class java.util.AbstractListmodCount
- 
Constructor SummaryConstructors Constructor Description ObservableListBase()Creates a defaultObservableListBase.
- 
Method SummaryModifier and Type Method Description protected voidbeginChange()Begins a change block.protected voidendChange()Ends the change block.protected voidfireChange(ListChangeListener.Change<? extends E> change)Notifies all listeners of a changeprotected booleanhasListeners()Returns true if there are some listeners registered for this list.protected voidnextAdd(int from, int to)Adds a new add operation to the change.protected voidnextPermutation(int from, int to, int[] perm)Adds a new permutation operation to the change.protected voidnextRemove(int idx, E removed)Adds a new remove operation to the change with single item removed.protected voidnextRemove(int idx, List<? extends E> removed)Adds a new remove operation to the change with multiple items removed.protected voidnextReplace(int from, int to, List<? extends E> removed)Adds a new replace operation to the change.protected voidnextSet(int idx, E old)Adds a new set operation to the change.protected voidnextUpdate(int pos)Adds a new update operation to the change.Methods declared in class java.util.AbstractListadd, add, addAll, clear, equals, get, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, remove, removeRange, set, subListMethods declared in class java.util.AbstractCollectionaddAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, size, toArray, toArray, toStringMethods declared in class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods declared in interface java.util.CollectionparallelStream, removeIf, stream, toArrayMethods declared in interface java.util.Listadd, 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, toArrayMethods declared in interface javafx.beans.ObservableaddListener, removeListenerMethods declared in interface javafx.collections.ObservableListaddAll, addListener, filtered, remove, removeAll, removeListener, retainAll, setAll, setAll, sorted, sorted
- 
Constructor Details- 
ObservableListBasepublic ObservableListBase()Creates a defaultObservableListBase.
 
- 
- 
Method Details- 
nextUpdateprotected final void nextUpdate(int pos)Adds a new update operation to the change.Note: needs to be called inside beginChange()/endChange()block.Note: needs to reflect the current state of the list. - Parameters:
- pos- the position in the list where the updated element resides.
 
- 
nextSetAdds a new set operation to the change. Equivalent tonextRemove(idx); nextAdd(idx, idx + 1);.Note: needs to be called inside beginChange()/endChange()block.Note: needs to reflect the current state of the list. - Parameters:
- idx- the index of the item that was set
- old- the old value at the- idxposition.
 
- 
nextReplaceAdds a new replace operation to the change. Equivalent tonextRemove(from, removed); nextAdd(from, to);Note: needs to be called inside beginChange()/endChange()block.Note: needs to reflect the current state of the list. - Parameters:
- from- the index where the items were replaced
- to- the end index (exclusive) of the range where the new items reside
- removed- the list of items that were removed
 
- 
nextRemoveAdds a new remove operation to the change with multiple items removed.Note: needs to be called inside beginChange()/endChange()block.Note: needs to reflect the current state of the list. - Parameters:
- idx- the index where the items were removed
- removed- the list of items that were removed
 
- 
nextRemoveAdds a new remove operation to the change with single item removed.Note: needs to be called inside beginChange()/endChange()block.Note: needs to reflect the current state of the list. - Parameters:
- idx- the index where the item was removed
- removed- the item that was removed
 
- 
nextPermutationprotected final void nextPermutation(int from, int to, int[] perm)Adds a new permutation operation to the change. The permutation on index"i"contains the index, where the item from the index"i"was moved.It's not necessary to provide the smallest permutation possible. It's correct to always call this method with nextPermutation(0, size(), permutation);Note: needs to be called inside beginChange()/endChange()block.Note: needs to reflect the current state of the list. - Parameters:
- from- marks the beginning (inclusive) of the range that was permutated
- to- marks the end (exclusive) of the range that was permutated
- perm- the permutation in that range. Even if- from != 0, the array should contain the indexes of the list. Therefore, such permutation would not contain indexes of range- (0, from)
 
- 
nextAddprotected final void nextAdd(int from, int to)Adds a new add operation to the change. There's no need to provide the list of added items as they can be found directly in the list under the specified indexes.Note: needs to be called inside beginChange()/endChange()block.Note: needs to reflect the current state of the list. - Parameters:
- from- marks the beginning (inclusive) of the range that was added
- to- marks the end (exclusive) of the range that was added
 
- 
beginChangeprotected final void beginChange()Begins a change block. Must be called before any of thenext*methods is called. For everybeginChange(), there must be a correspondingendChange()call.beginChange()calls can be nested in abeginChange()/endChange()block.- See Also:
- endChange()
 
- 
endChangeprotected final void endChange()Ends the change block. If the block is the outer-most block for theObservableList, theChangeis constructed and all listeners are notified.Ending a nested block doesn't fire a notification. - See Also:
- beginChange()
 
- 
fireChangeNotifies all listeners of a change- Parameters:
- change- an object representing the change that was done
 
- 
hasListenersprotected final boolean hasListeners()Returns true if there are some listeners registered for this list.- Returns:
- true if there is a listener for this list
 
 
-