protected void fireCollectionChanged(Operation operation, List<T> items) { if (listenersSuspended) { if (!suspendedEvents.isEmpty() && suspendedEvents.getFirst().getOperation().equals(operation)) { suspendedEvents.getFirst().getItems().addAll(items); } else { suspendedEvents.addFirst(new CollectionChangeEvent<>(this, operation, new ArrayList<>(items))); } return; } if (collectionChangeListeners != null && !collectionChangeListeners.isEmpty()) { CollectionChangeEvent event = new CollectionChangeEvent<>(this, operation, items); for (CollectionChangeListener<? super T, K> listener : new ArrayList<>(collectionChangeListeners)) { //noinspection unchecked listener.collectionChanged(event); } } }
@SuppressWarnings("unchecked") @Override public void collectionChanged(CollectionDatasource.CollectionChangeEvent e) { CollectionChangeListener collectionChangeListener = reference.get(); if (collectionChangeListener != null) { collectionChangeListener.collectionChanged(e); } else { collectionDatasource.removeCollectionChangeListener(this); } } }
@SuppressWarnings("unchecked") @Override public void collectionChanged(CollectionDatasource.CollectionChangeEvent e) { CollectionDatasource.CollectionChangeListener collectionChangeListener = collectionChangeListenerReference.get(); if (collectionChangeListener != null) { collectionChangeListener.collectionChanged(e); } else { collectionDatasource.removeCollectionChangeListener(this); } }