package org.ovirt.engine.ui.uicompat; public class EventProvidingCollection<T> extends ObservableCollection<T> implements IProvideCollectionChangedEvent { private Event<EventArgs> privateCollectionChangedEvent; public Event<EventArgs> getCollectionChangedEvent() { return privateCollectionChangedEvent; } private void setCollectionChangedEvent(Event<EventArgs> value) { privateCollectionChangedEvent = value; } public EventProvidingCollection() { setCollectionChangedEvent(new Event<>(ProvideCollectionChangedEvent.Definition)); } @Override protected void onCollectionChanged(NotifyCollectionChangedEventArgs e) { super.onCollectionChanged(e); getCollectionChangedEvent().raise(this, e); } }