Show AbstractTimedInput.java syntax highlighted
/**
*
*/
package ucalgary.ebe.ci.gestures.input;
import java.util.Timer;
import java.util.TimerTask;
/**
* @author hkolenda
*
*/
public class AbstractTimedInput extends AbstractGestureInput {
private class ExpiredTimer extends TimerTask {
/*
* (non-Javadoc)
*
* @see java.util.TimerTask#run()
*/
@Override
public void run() {
AbstractTimedInput.this.fireCancelGesture();
}
}
/**
* the time between two input, before gesutre ist cancelled. of this number
* is equal or less 0, the gestures are not timed out
*/
private long gestureTimeout = 0;
private Timer timer = null;
private TimerTask expiredTimerTask = null;
public AbstractTimedInput() {
timer = new Timer(true);
}
private void cancelTimer() {
if (expiredTimerTask != null) {
expiredTimerTask.cancel();
}
}
private void restartTimer() {
cancelTimer();
startTimer();
}
private void startTimer() {
if (gestureTimeout > 0) {
expiredTimerTask = new ExpiredTimer();
timer.schedule(expiredTimerTask, gestureTimeout);
}
}
protected void fireCoordInput(int x, int y) {
if (isGestureRunning()) {
restartTimer();
super.fireCoordInput(x, y);
}
}
protected void fireStartGesture() {
startTimer();
super.fireStartGesture();
}
protected void fireStopGesture() {
cancelTimer();
super.fireStopGesture();
}
/**
* @param gestureTimeout
* the gestureTimeout to set
*/
public void setGestureTimeout(long gestureTimeout) {
this.gestureTimeout = gestureTimeout;
}
}
See more files for this project here