net.sf.javagimmicks.collections.event.ObservableEventSet Maven / Gradle / Ivy
package net.sf.javagimmicks.collections.event;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import net.sf.javagimmicks.collections.event.SetEvent.Type;
public class ObservableEventSet extends AbstractEventSet
{
private static final long serialVersionUID = 4799365684601532982L;
protected transient List> _listeners;
public ObservableEventSet(Set decorated)
{
super(decorated);
}
public void addEventSetListener(EventSetListener listener)
{
if(_listeners == null)
{
_listeners = new ArrayList>();
}
_listeners.add(listener);
}
public void removeEventSetListener(EventSetListener listener)
{
if(_listeners != null)
{
_listeners.remove(listener);
}
}
@Override
protected void fireElementAdded(E element)
{
fireEvent(new SetEvent(this, Type.ADDED, element));
}
@Override
protected void fireElementReadded(E element)
{
fireEvent(new SetEvent(this, Type.READDED, element));
}
@Override
protected void fireElementRemoved(E element)
{
fireEvent(new SetEvent(this, Type.REMOVED, element));
}
private void fireEvent(SetEvent event)
{
if(_listeners == null)
{
return;
}
for(EventSetListener listener : _listeners)
{
listener.eventOccured(event);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy