Skip to content
This repository has been archived by the owner on Jul 11, 2019. It is now read-only.

Commit

Permalink
feature: ObservableList supports removeWhere
Browse files Browse the repository at this point in the history
  • Loading branch information
MikeMitterer committed Jul 17, 2015
1 parent aea9f19 commit d25c473
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion lib/src/observable/ObservableList.dart
Expand Up @@ -126,11 +126,24 @@ class ObservableList<T> extends ListBase<T> {
}

@override
bool remove(final Object element) {
bool remove(final T element) {
_fire(new ListChangedEvent<T>(ListChangeType.REMOVE,item: element ));
return _innerList.remove(element);
}

@override
void removeWhere(bool test(final T element)) {
final List<T> itemsToRemove = new List<T>();

_innerList.forEach((final T element) {
if(test(element)) {
itemsToRemove.add(element);
}
});

itemsToRemove.forEach((final T element) => remove(element));
}

//- private -----------------------------------------------------------------------------------

void _fire(final ListChangedEvent<T> event) {
Expand Down

0 comments on commit d25c473

Please sign in to comment.