Code Search for Developers
 
 
  

APInputFramework.java from MASE: Agile Software Engineering at Krugle


Show APInputFramework.java syntax highlighted

/**
 * 
 */
package ucalgary.ebe.ci.AgilePlanner;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Control;

import rallydemogef.Editor;
import ucalgary.ebe.ci.AgilePlanner.gestures.AgilePlannerGestureTable;
import ucalgary.ebe.ci.AgilePlanner.gestures.MoveAndRotateWith2InputRecognizer;
import ucalgary.ebe.ci.gestures.ICIGestureProvider;
import ucalgary.ebe.ci.gestures.events.ICIGestureListener;
import ucalgary.ebe.ci.gestures.impl.MultiInputGestureProvider;
import ucalgary.ebe.ci.gestures.input.mouse.MouseProviderInput;
import ucalgary.ebe.ci.gestures.input.swt.SWTMouseWithKeyComboInput;
import ucalgary.ebe.ci.gestures.recognition.IGestureRecognizer;
import ucalgary.ebe.ci.gestures.recognition.direction.DirectionReconizer;
import ucalgary.ebe.ci.gestures.recognition.distance.DistanceRecognition;
import ucalgary.ebe.ci.gestures.recognition.position.PositionRecognizer;
import ucalgary.ebe.ci.mice.impl.manymouse.SWTManyMouseWrapper;

/**
 * @author hkolenda
 * 
 */
public class APInputFramework implements ICIGestureProvider {

	private static Editor editor = null;

	private List<ICIGestureProvider> gestureProviderList = new ArrayList<ICIGestureProvider>();

	public APInputFramework(Editor editor) {

		if (APInputFrameworkConfig.USE_INPUT_FRAMEWORK) {

			APInputFramework.editor = editor;

			// gestureProviderList.add(getStandardGestureDirectionsFromSWTManyMouseProvider());

			gestureProviderList
					.add(getStandardGestureDirectionsFromMouseProvider());
			// gestureProviderList.add(getStandardGestureDirectionsFromMouseProvider2());
			gestureProviderList.add(getBestCaseSettingProvider());
			// gestureProviderList.add(getManyMouseMoveAndRotateProvider());
			gestureProviderList.add(getPositionExpandCollapseProvider());

		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ucalgary.ebe.ci.gestures.ICIGestureProvider#addCIGestureListener(ucalgary.ebe.ci.gestures.events.ICIGestureListener)
	 */
	public void addCIGestureListener(ICIGestureListener listener) {
		for (ICIGestureProvider provider : gestureProviderList) {
			provider.addCIGestureListener(listener);
		}
	}

	private ICIGestureProvider getBestCaseSettingProvider() {
		MultiInputGestureProvider gestureProvider = new MultiInputGestureProvider();
		gestureProvider.setCalcAfterEveryCoord(true);
		gestureProvider.setGestureRecognizer(new DistanceRecognition());
		SWTMouseWithKeyComboInput input = new SWTMouseWithKeyComboInput(editor
				.getViewer().getControl());
		input.setKeyCode('b');
		input.setKeyModifier(SWT.CTRL);
		gestureProvider.addGestureInput(input);

		return gestureProvider;
	}

	private ICIGestureProvider getManyMouseMoveAndRotateProvider() {
		MultiInputGestureProvider gestureProvider = new MultiInputGestureProvider();
		gestureProvider.setCalcAfterEveryCoord(true);

		IGestureRecognizer gestureRecognizer = new MoveAndRotateWith2InputRecognizer();
		gestureProvider.setGestureRecognizer(gestureRecognizer);

		SWTManyMouseWrapper swtManyMouseWrapper = new SWTManyMouseWrapper(
				editor.getViewer().getControl().getShell());

		MouseProviderInput mouseinput = new MouseProviderInput(
				swtManyMouseWrapper, 0);
		gestureProvider.addGestureInput(mouseinput);

		mouseinput = new MouseProviderInput(swtManyMouseWrapper, 1);
		gestureProvider.addGestureInput(mouseinput);

		return gestureProvider;
	}

	private ICIGestureProvider getPositionExpandCollapseProvider() {
		MultiInputGestureProvider gestureProvider = new MultiInputGestureProvider();
		gestureProvider.setCalcAfterEveryCoord(true);
		PositionRecognizer positionReconizer = new PositionRecognizer();
		positionReconizer
				.setGestureA(AgilePlannerGestures.STORYCARD_COLLAPSE_ALL);
		positionReconizer
				.setGestureB(AgilePlannerGestures.STORYCARD_COLLAPSE_ALL);
		positionReconizer
				.setGestureC(AgilePlannerGestures.STORYCARD_EXPAND_ALL);
		positionReconizer
				.setGestureD(AgilePlannerGestures.STORYCARD_EXPAND_ALL);
		gestureProvider.setGestureRecognizer(positionReconizer);
		Control control = editor.getViewer().getControl();
		SWTMouseWithKeyComboInput gestureInput = new SWTMouseWithKeyComboInput(
				control);
		gestureInput.setKeyCode('e');
		gestureInput.setKeyModifier(SWT.CTRL);
		gestureInput.setGestureTimeout(0);
		gestureProvider.addGestureInput(gestureInput);

		return gestureProvider;

	}

	private ICIGestureProvider getStandardGestureDirectionsFromMouseProvider() {
		MultiInputGestureProvider gestureProvider = new MultiInputGestureProvider();
		gestureProvider.setGestureId(1);
		DirectionReconizer directionReconizer = new DirectionReconizer();
		directionReconizer.setGestureTable(new AgilePlannerGestureTable());
		gestureProvider.setGestureRecognizer(directionReconizer);
		Control control = editor.getViewer().getControl();
		SWTMouseWithKeyComboInput gestureInput = new SWTMouseWithKeyComboInput(
				control);
		gestureInput.setKeyModifier(SWT.CTRL);
		gestureProvider.addGestureInput(gestureInput);
		return gestureProvider;
	}

	private ICIGestureProvider getStandardGestureDirectionsFromSWTManyMouseProvider() {

		MultiInputGestureProvider gestureProvider = new MultiInputGestureProvider();
		gestureProvider.setGestureId(1);
		DirectionReconizer directionReconizer = new DirectionReconizer();
		directionReconizer.setGestureTable(new AgilePlannerGestureTable());
		gestureProvider.setGestureRecognizer(directionReconizer);

		SWTManyMouseWrapper swtManyMouseWrapper = new SWTManyMouseWrapper(
				editor.getViewer().getControl().getShell());

		MouseProviderInput input = new MouseProviderInput(swtManyMouseWrapper,
				0);

		gestureProvider.addGestureInput(input);

		return gestureProvider;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ucalgary.ebe.ci.gestures.ICIGestureProvider#removeCIGestureListener(ucalgary.ebe.ci.gestures.events.ICIGestureListener)
	 */
	public void removeCIGestureListener(ICIGestureListener listener) {
		for (ICIGestureProvider provider : gestureProviderList) {
			provider.removeCIGestureListener(listener);
		}
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ucalgary.ebe.ci.ConcurrentInputFramework#stop()
	 */
	public void stop() {
		for (ICIGestureProvider provider : gestureProviderList) {
			provider.stop();
		}
	}

}




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

  gestures/
    AgilePlannerGestureTable.java
    MoveAndRotateWith2InputRecognizer.java
  APInputFramework.java
  APInputFrameworkConfig.java
  AgilePlannerGestures.java
  AgilePlannerGesturesAdapter.java