/*
* Ext GWT - Ext for GWT
* Copyright(c) 2007-2009, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/
package com.extjs.gxt.ui.client.data;
import java.util.ArrayList;
import java.util.List;
/**
* Default implementation of the <code>ChangeEventSource</code> interface.
*/
public class ChangeEventSupport implements ChangeEventSource {
protected List<ChangeListener> listeners;
protected boolean silent;
public void addChangeListener(ChangeListener... listener) {
if (listeners == null) {
listeners = new ArrayList<ChangeListener>();
}
for (int i = 0; i < listener.length; i++) {
listeners.add(listener[i]);
}
}
public void notify(ChangeEvent event) {
if (!silent && listeners != null) {
for (ChangeListener listener : listeners) {
listener.modelChanged(event);
}
}
}
public void removeChangeListener(ChangeListener... listener) {
if (listeners != null) {
for (int i = 0; i < listener.length; i++) {
listeners.remove(listener[i]);
}
}
}
public void setSilent(boolean silent) {
this.silent = silent;
}
public void removeChangeListeners() {
listeners.clear();
}
}