org.eclipse.gef.common.collections

## Class ListListenerHelperEx<E>

- java.lang.Object
- - org.eclipse.gef.common.collections.ListListenerHelperEx<E>

Type Parameters:
  `E` - The element type of the `ObservableList`.

Direct Known Subclasses:
  ListExpressionHelperEx

    public class ListListenerHelperEx<E>
    extends java.lang.Object

A utility class to support change notifications for an `ObservableList` , replacing the JavaFX-internal `ListChangeListener` helper class.

### Nested Class Summary

Nested Classes
`static class` `ListListenerHelperEx.AtomicChange<E>` A simple implementation of an `ListChangeListener.Change`.
`static class` `ListListenerHelperEx.ElementarySubChange<E>` An abstract elementary change of an `ObservableList`

### Constructor Summary

Constructors
Constructor and Description
`ListListenerHelperEx(javafx.collections.ObservableList<E> source)` Constructs a new `ListListenerHelperEx` for the given source `ObservableList`.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `addListener(javafx.beans.InvalidationListener listener)` Adds a new `InvalidationListener` to this `ListListenerHelperEx`.
`void` `addListener(javafx.collections.ListChangeListener<? super E> listener)` Adds a new `ListChangeListener` to this `ListListenerHelperEx`.
`void` `fireValueChangedEvent(javafx.collections.ListChangeListener.Change<? extends E> change)` Notifies all attached `InvalidationListener`s and `ListChangeListener`s about the change.
`protected static <E> java.util.List<ListListenerHelperEx.ElementarySubChange<E>>` `getElementaryChanges(javafx.collections.ListChangeListener.Change<? extends E> change)` Infers the elementary changes constituting the change of the `ObservableList`.
`protected javafx.collections.ObservableList<E>` `getSource()` Returns the source `ObservableList` this `ListListenerHelperEx` is bound to, which is used in change notifications.
`protected void` `notifyInvalidationListeners()` Notifies all registered `InvalidationListener`s.
`protected void` `notifyListChangeListeners(javafx.collections.ListChangeListener.Change<? extends E> change)` Notifies the attached `ListChangeListener`s about the related change.
`void` `removeListener(javafx.beans.InvalidationListener listener)` Removes the given `InvalidationListener` from this `ListListenerHelperEx`.
`void` `removeListener(javafx.collections.ListChangeListener<? super E> listener)` Removes the given `ListChangeListener` from this `ListListenerHelperEx`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ListListenerHelperEx

    public ListListenerHelperEx(javafx.collections.ObservableList<E> source)

Constructs a new `ListListenerHelperEx` for the given source `ObservableList`.

Parameters:
  `source` - The `ObservableList` to use as source in change notifications.

### Method Detail

#### getElementaryChanges

    protected static <E> java.util.List<ListListenerHelperEx.ElementarySubChange<E>> getElementaryChanges(javafx.collections.ListChangeListener.Change<? extends E> change)

Infers the elementary changes constituting the change of the `ObservableList`.

Type Parameters:
  `E` - The element type of the `ObservableList` that was changed.
Parameters:
  `change` - The (atomic) change to infer elementary changes from.
Returns:
  A list of elementary changes.

#### addListener

    public void addListener(javafx.beans.InvalidationListener listener)

Adds a new `InvalidationListener` to this `ListListenerHelperEx`. If the same listener is added more than once, it will be registered more than once and will receive multiple change events.

Parameters:
  `listener` - The listener to add.

#### addListener

    public void addListener(javafx.collections.ListChangeListener<? super E> listener)

Adds a new `ListChangeListener` to this `ListListenerHelperEx`. If the same listener is added more than once, it will be registered more than once and will receive multiple change events.

Parameters:
  `listener` - The listener to add.

#### fireValueChangedEvent

    public void fireValueChangedEvent(javafx.collections.ListChangeListener.Change<? extends E> change)

Notifies all attached `InvalidationListener`s and `ListChangeListener`s about the change.

Parameters:
  `change` - The change to notify listeners about.

#### getSource

    protected javafx.collections.ObservableList<E> getSource()

Returns the source `ObservableList` this `ListListenerHelperEx` is bound to, which is used in change notifications.

Returns:
  The source `ObservableList`.

#### notifyInvalidationListeners

    protected void notifyInvalidationListeners()

Notifies all registered `InvalidationListener`s.

#### notifyListChangeListeners

    protected void notifyListChangeListeners(javafx.collections.ListChangeListener.Change<? extends E> change)

Notifies the attached `ListChangeListener`s about the related change.

Parameters:
  `change` - The applied change.

#### removeListener

    public void removeListener(javafx.beans.InvalidationListener listener)

Removes the given `InvalidationListener` from this `ListListenerHelperEx`. If its was registered more than once, removes one occurrence.

Parameters:
  `listener` - The listener to remove.

#### removeListener

    public void removeListener(javafx.collections.ListChangeListener<? super E> listener)

Removes the given `ListChangeListener` from this `ListListenerHelperEx`. If its was registered more than once, removes one occurrence.

Parameters:
  `listener` - The listener to remove.