package org.arong.egdownloader.model;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.util.ArrayList;
import java.util.Collection;
/**
* 对ArrayList的调整类,主要添加属性监听
* @author dipoo
* @since 2015-07-25
* @param <T>
*/
public class TaskList<T> extends ArrayList<T> {
private static final long serialVersionUID = 8354635507256958013L;
private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);//属性变化监听支持
public void addPropertyChangeListener(PropertyChangeListener l) {
changeSupport.addPropertyChangeListener(l);
}
public void removePropertyChangeListener(PropertyChangeListener l) {
changeSupport.removePropertyChangeListener(l);
}
public boolean add(T e) {
changeSupport.firePropertyChange("", null, null);
return super.add(e);
}
public boolean remove(Object o) {
changeSupport.firePropertyChange("", null, null);
return super.remove(o);
}
public boolean addAll(Collection<? extends T> c) {
changeSupport.firePropertyChange("", null, null);
return super.addAll(c);
}
public boolean removeAll(Collection<?> c) {
changeSupport.firePropertyChange("", null, null);
return super.removeAll(c);
}
public void add(int index, T element) {
changeSupport.firePropertyChange("", null, null);
super.add(index, element);
}
}