package org.ovirt.engine.ui.userportal.client.uicommonext;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Timer;
import org.ovirt.engine.core.compat.EventArgs;
import org.ovirt.engine.ui.uicommon.ITimer;
import org.ovirt.engine.ui.uicommon.ProvideTickEvent;
import org.ovirt.engine.core.compat.Event;
import org.ovirt.engine.ui.userportal.client.components.UserPortalTimerFactory;
public class TimerImpl implements ITimer {
private Event tickEvent;
private int interval;
private Timer timer = UserPortalTimerFactory.factoryTimer("UICommon Timer", new Timer() {
@Override
public void run() {
GWT.log("Timer execution");
tickEvent.raise(this, EventArgs.Empty);
}
});
public TimerImpl() {
tickEvent = new Event(ProvideTickEvent.Definition);
}
@Override
public int getInterval() {
return 0;
}
@Override
public void setInterval(int value) {
GWT.log("Timer interval set to " + value + " by UICommon");
interval = value;
}
@Override
public void start() {
GWT.log("Timer started by UICommon");
timer.scheduleRepeating(interval);
}
@Override
public void stop() {
GWT.log("Timer stopped by UICommon");
timer.cancel();
}
@Override
public Event getTickEvent() {
return tickEvent;
}
}