Code Search for Developers
 
 
  

AbstractTimedInput.java from MASE: Agile Software Engineering at Krugle


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

MASE: Agile Software Engineering

The MASE project investigates methods to support the coordination and executable acceptance testing of software projects. Keywords: Agile methods, distributed teams, Extreme Programming. See http://ebe.cpsc.ucalgary.ca/ebe for more information.

Project homepage: http://sourceforge.net/projects/mase
Programming language(s): Java,XML
License: other

  mouse/
    MouseProviderInput.java
  swt/
    SWTMouseInput.java
    SWTMouseWithKeyComboInput.java
    SWTMouseWithKeyInput.java
  AbstractGestureInput.java
  AbstractTimedInput.java
  GestureInput.java
  GestureInputListener.java