public interface IListEventAssembler<E>
| Modifier and Type | Method and Description |
|---|---|
void |
addChange(int type,
int startIndex,
java.util.List<ObjectChange<E>> changeEvents)
Adds a block of changes to the set of list changes.
|
void |
addChange(int type,
int index,
ObjectChange<E> event)
Convenience method for appending a single change of the specified type.
|
void |
addListEventListener(ListEventListener<? super E> listChangeListener)
Registers the specified listener to be notified whenever new changes
are appended to this list change sequence.
|
void |
beginEvent()
Starts a new atomic change to this list change queue.
|
void |
beginEvent(boolean allowNestedEvents)
Starts a new atomic change to this list change queue.
|
void |
commitEvent()
Commits the current atomic change to this list change queue.
|
static ListEventPublisher |
createListEventPublisher()
|
void |
discardEvent()
Discards the current atomic change to this list change queue.
|
void |
elementDeleted(int index,
E oldValue)
Add to the current ListEvent the removal of the element at the specified
index, with the specified previous value.
|
void |
elementDeleted(int index,
java.util.List<E> oldValues)
Adds a block of removal events
|
void |
elementInserted(int index,
E newValue)
Add to the current ListEvent the insert of the element at
the specified index, with the specified previous value.
|
void |
elementInserted(int index,
java.util.List<E> newValues)
Adds a block of insert events.
|
void |
elementUpdated(int index,
E oldValue,
E newValue)
Add to the current ListEvent the update of the element at the specified
index, with the specified previous value.
|
void |
elementUpdated(int index,
java.util.List<E> oldValues,
java.util.List<E> newValues) |
void |
elementUpdated(int index,
java.util.List<ObjectChange<E>> changes)
Adds a block of update events
|
void |
elementUpdated(int index,
ObjectChange<E> change) |
ListEvent<E> |
emptyEvent() |
void |
forwardEvent(ListEvent<?> listChanges)
Forwards the event.
|
ListEvent<E> |
getCurrentChanges()
Returns the uncommited changes of the current event level
|
java.util.List<ListEventListener<E>> |
getListEventListeners()
Get all
ListEventListeners observing the EventList. |
boolean |
isEventEmpty()
Returns true if the current atomic change to this list change
queue is empty; false otherwise.
|
boolean |
isEventInProgress()
Indicate whether or not an event is in progress.
|
ListEventAssembler<E> |
newAssembler() |
void |
removeListEventListener(ListEventListener<? super E> listChangeListener)
Removes the specified listener from receiving notification when new
changes are appended to this list change sequence.
|
void |
reorder(int[] reorderMap,
java.util.List<ObjectChange<E>> changes)
Sets the current event as a reordering.
|
boolean isEventInProgress()
void beginEvent()
This simple change event does not support change events nested within. To allow other methods to nest change events within a change event, use beginEvent(true).
void beginEvent(boolean allowNestedEvents)
allowNestedEvents - false to throw an exception
if another call to beginEvent() is made before
the next call to commitEvent(). Nested events allow
multiple method's events to be composed into a single
event.void elementInserted(int index,
E newValue)
void elementInserted(int index,
java.util.List<E> newValues)
void elementDeleted(int index,
E oldValue)
void elementDeleted(int index,
java.util.List<E> oldValues)
void elementUpdated(int index,
java.util.List<ObjectChange<E>> changes)
void elementUpdated(int index,
E oldValue,
E newValue)
void elementUpdated(int index,
java.util.List<E> oldValues,
java.util.List<E> newValues)
void elementUpdated(int index,
ObjectChange<E> change)
void addChange(int type,
int index,
ObjectChange<E> event)
void addChange(int type,
int startIndex,
java.util.List<ObjectChange<E>> changeEvents)
void reorder(int[] reorderMap,
java.util.List<ObjectChange<E>> changes)
void forwardEvent(ListEvent<?> listChanges)
Note that this method should be preferred to manually forwarding events because it is heavily optimized.
Note that currently this implementation does a best effort to preserve reorderings. This means that a reordering is lost if it is combined with any other ListEvent.
void commitEvent()
If the current event is nested within a greater event, this will simply change the nesting level so that further changes are applied directly to the parent change.
void discardEvent()
The caller of this method is responsible for returning the EventList to its state before the event began. If they fail to do so, the EventList pipeline may be in an inconsistent state.
If the current event is nested within a greater event, this will discard changes at the current nesting level and that further changes are still applied directly to the parent change.
boolean isEventEmpty()
void addListEventListener(ListEventListener<? super E> listChangeListener)
For each listener, a ListEvent is created, which provides a read-only view to the list changes in the list. The same ListChangeView object is used for all notifications to the specified listener, so if a listener does not process a set of changes, those changes will persist in the next notification.
listChangeListener - event listener != nulljava.lang.NullPointerException - if the specified listener is nullvoid removeListEventListener(ListEventListener<? super E> listChangeListener)
This uses the == identity comparison to find the listener
instead of equals(). This is because multiple Lists may be
listening and therefore equals() may be ambiguous.
listChangeListener - event listener != nulljava.lang.NullPointerException - if the specified listener is nulljava.lang.IllegalArgumentException - if the specified listener wasn't added beforejava.util.List<ListEventListener<E>> getListEventListeners()
ListEventListeners observing the EventList.ListEvent<E> getCurrentChanges()
ListEventAssembler<E> newAssembler()
static ListEventPublisher createListEventPublisher()
Glazed Lists, Copyright © 2003 publicobject.com, O'Dell Engineering.
Documentation build by swimmesberger at Mon Feb 25 11:02:37 CET 2019