import javax.swing.event.*;
public class DefaultTickerModel implements TickerModel {
protected EventListenerList listeners;
private int secondes;
private int delay;
private Ticker ticker;
public DefaultTickerModel(Ticker t) {
listeners = new EventListenerList();
delay = 1;
secondes = 0;
ticker = t;
}
public void addTickerListener(TickerListener tl) {
listeners.add(TickerListener.class,tl);
}
public void removeTickerListener(TickerListener tl) {
listeners.remove(TickerListener.class,tl);
}
public void fireTickerEvent() {
TickerEvent e = new TickerEvent(this);
Object []l = listeners.getListenerList();
for (int i=l.length-1; i>=0; i-=2) {
((TickerListener)l[i]).tickPerformed(e);
}
}
public void setDelay(int s) {
delay = s;
}
public void start() {
Thread t = new Thread(this);
t.start();
}
public void run() {
while (true) {
secondes++;
try {
Thread.sleep(1000);
} catch(Exception e) {
}
if (secondes%delay==0) fireTickerEvent();
ticker.repaint();
}
}
}