package org.ovirt.engine.ui.common.uicommon;
import java.util.logging.Logger;
import org.ovirt.engine.ui.uicommonweb.ITimer;
import org.ovirt.engine.ui.uicommonweb.ProvideTickEvent;
import org.ovirt.engine.ui.uicompat.Event;
import org.ovirt.engine.ui.uicompat.EventArgs;
import com.google.gwt.user.client.Timer;
public class TimerImpl implements ITimer {
private final Event<EventArgs> tickEvent;
private static final Logger logger = Logger.getLogger(TimerImpl.class.getName());
private int interval;
private final Timer timer = TimerFactory.factoryTimer("UICommon Timer", new Timer() { //$NON-NLS-1$
@Override
public void run() {
logger.info("Timer execution"); //$NON-NLS-1$
tickEvent.raise(this, EventArgs.EMPTY);
}
});
public TimerImpl() {
tickEvent = new Event<>(ProvideTickEvent.definition);
}
@Override
public int getInterval() {
return 0;
}
@Override
public void setInterval(int value) {
logger.info("Timer interval set to " + value + " by UICommon"); //$NON-NLS-1$ //$NON-NLS-2$
interval = value;
}
@Override
public void start() {
logger.info("Timer started by UICommon"); //$NON-NLS-1$
timer.scheduleRepeating(interval);
}
@Override
public void stop() {
logger.info("Timer stopped by UICommon"); //$NON-NLS-1$
timer.cancel();
}
@Override
public Event<EventArgs> getTickEvent() {
return tickEvent;
}
}