package org.geogebra.web.html5.sound;
import org.geogebra.common.util.GTimer;
import org.geogebra.common.util.GTimerListener;
import com.google.gwt.user.client.Timer;
public class GTimerW implements GTimer {
private Timer timer;
private int delay;
private GTimerListener listener;
public GTimerW(GTimerListener listener, int delay) {
this.listener = listener;
timer = new Timer() {
@Override
public void run() {
GTimerW.this.listener.onRun();
}
};
setDelay(delay);
}
@Override
public void start() {
timer.schedule(delay);
}
@Override
public void startRepeat() {
if (!isRunning()) {
timer.scheduleRepeating(delay);
}
}
@Override
public void stop() {
timer.cancel();
}
@Override
public boolean isRunning() {
return timer.isRunning();
}
@Override
public void setDelay(int delay) {
this.delay = delay;
if (isRunning()) {
// note that this will stop the current schedule
// and start a new one with the new delay
timer.scheduleRepeating(delay);
}
}
}