package org.freeplane.core.ui;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
public class DoubleClickTimer{
static final public int MAX_TIME_BETWEEN_CLICKS;
static {
final Object p = Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval");
MAX_TIME_BETWEEN_CLICKS = p instanceof Integer ? (Integer) p : 250;
}
private Timer timer;
private int delay;
public int getDelay() {
return delay;
}
public void setDelay(int delay) {
this.delay = delay;
}
public DoubleClickTimer() {
}
public void start(final Runnable runnable){
if(runnable == null)
return;
cancel();
if(delay == 0){
runnable.run();
return;
}
timer = new Timer(delay, new ActionListener() {
public void actionPerformed(ActionEvent e) {
timer = null;
runnable.run();
}
});
timer.setRepeats(false);
timer.start();
}
public void cancel() {
if (timer != null){
timer.stop();
timer = null;
}
}
}