/**
*
*/
package org.hyperdata.scute.status;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.swing.ImageIcon;
import org.hyperdata.resources.indicators.IndicatorIcons;
/**
* The Class StatusMonitor.
*
* @author danny
*/
public class StatusMonitor {
// bunch of constants
public static final int N_STATES = 3;
public static final int RED = 0;
public static final int AMBER = 1;
public static final int GREEN = 2;
protected static final String[] DEFAULT_DESCRIPTION = { "Bad", "Unknown",
"Good" };
protected static final ImageIcon[] ICON = new ImageIcon[N_STATES];
public static final int INDETERMINATE_PROGRESS = -101;
public static final int INACTIVE = -1;
static {
ICON[0] = IndicatorIcons.redIcon;
ICON[1] = IndicatorIcons.amberIcon;
ICON[2] = IndicatorIcons.greenIcon;
}
private Set<StatusChangeListener> statusChangeListeners = new HashSet<StatusChangeListener>();
/**
* @return
*/
public Set<StatusChangeListener> getStatusChangeListeners() {
return statusChangeListeners;
}
/**
* @param statusChangeListeners
*/
public void addStatusChangeListeners(Set<StatusChangeListener> statusChangeListeners) {
this.statusChangeListeners.addAll(statusChangeListeners);
}
/**
* Adds the status listener.
*
* @param listener the listener
*/
public void addStatusListener(StatusChangeListener listener) {
statusChangeListeners.add(listener);
}
/**
* State changed.
*
* @param vEvent the v event
*/
public void stateChanged(StatusEvent vEvent){
Iterator<StatusChangeListener> iterator = statusChangeListeners.iterator();
while(iterator.hasNext()){
iterator.next().statusChanged(vEvent);
}
}
}