35 lines
770 B
Java
35 lines
770 B
Java
package com.minres.scviewer.database.ui.swt.internal.slider;
|
|
|
|
import org.eclipse.swt.widgets.Display;
|
|
|
|
public class ActionTimer implements Runnable {
|
|
|
|
public static final int INITIAL_DELAY = 300;
|
|
public static final int FAST_DELAY = 50;
|
|
|
|
private final Display display;
|
|
private final TimerAction timerAction;
|
|
|
|
public interface TimerAction extends Runnable {
|
|
boolean isEnabled();
|
|
}
|
|
|
|
public ActionTimer( TimerAction timerAction, Display display ) {
|
|
this.display = display;
|
|
this.timerAction = timerAction;
|
|
}
|
|
|
|
public void activate() {
|
|
if( timerAction.isEnabled() ) {
|
|
display.timerExec( INITIAL_DELAY, this );
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void run() {
|
|
if( timerAction.isEnabled() ) {
|
|
timerAction.run();
|
|
display.timerExec( FAST_DELAY, this );
|
|
}
|
|
}
|
|
} |