package org.seqcode.projects.seqview.components; import java.awt.Color; import java.util.EventObject; import java.util.HashSet; import org.seqcode.gseutils.EventSource; import org.seqcode.gseutils.Listener; public class SeqViewStatus implements EventSource<EventObject>{ private String statusMessage=""; private Color statusColor = Color.black; private HashSet<Listener<EventObject>> listeners; public SeqViewStatus(){ listeners = new HashSet<Listener<EventObject>>(); } public void setStatus(String m, Color c){ statusMessage=m; statusColor=c; notifyListeners(); } public String getMessage(){return statusMessage;} public Color getColor(){return statusColor;} public synchronized void notifyListeners(EventObject obj) { for (Listener<EventObject> l : listeners) { l.eventRegistered(obj); } } public void notifyListeners() { notifyListeners(new EventObject(this)); } public void addEventListener(Listener<EventObject> l) { listeners.add(l); } public void removeEventListener(Listener<EventObject> l) { listeners.remove(l); } public boolean hasListeners() {return listeners.size() > 0;} }