Demo: Hello World

Internal Configuration

package org.ximtec.igesture.app.helloworld;

import org.ximtec.igesture.Recogniser;
import org.ximtec.igesture.algorithm.AlgorithmException;
import org.ximtec.igesture.algorithm.siger.SigerRecogniser;
import org.ximtec.igesture.configuration.Configuration;
import org.ximtec.igesture.core.GestureClass;
import org.ximtec.igesture.core.GestureSet;
import org.ximtec.igesture.core.ResultSet;
import org.ximtec.igesture.core.TextDescriptor;
import org.ximtec.igesture.io.ButtonDeviceEventListener;
import org.ximtec.igesture.io.InputDeviceClient;
import org.ximtec.igesture.tool.GestureConfiguration;
import org.ximtec.ipaper.io.InputDeviceEvent;


public class HelloWorld implements ButtonDeviceEventListener {

   private Recogniser recogniser;
   private InputDeviceClient client;


   public HelloWorld() throws AlgorithmException {
      GestureConfiguration appConfig = new GestureConfiguration("config.xml");
	   
	   GestureClass leftRightLine = new GestureClass("LeftRight");
      leftRightLine.addDescriptor(new TextDescriptor("E"));

      GestureClass downRight = new GestureClass("DownRight");
      downRight.addDescriptor(new TextDescriptor("S,E"));

      GestureClass upLeft = new GestureClass("UpLeft");
      upLeft.addDescriptor(new TextDescriptor("N,W"));

      GestureSet gestureSet = new GestureSet("GestureSet");
      gestureSet.addGestureClass(leftRightLine);
      gestureSet.addGestureClass(upLeft);
      gestureSet.addGestureClass(downRight);

      Configuration configuration = new Configuration();
      configuration.addGestureSet(gestureSet);
      configuration.addAlgorithm(SigerRecogniser.class.getName());

      recogniser = new Recogniser(configuration);
    
      client = new InputDeviceClient(appConfig);

      client.addButtonDeviceEventListener(this);

      System.out.println("initialised...");
   }


   public static void main(String[] args) throws AlgorithmException {
      new HelloWorld();
   }


   public void handleButtonPressedEvent(InputDeviceEvent event) {
      ResultSet result = recogniser.recognise(client.createNote(0, event
            .getTimestamp(), 70));
      client.clearBuffer();
      if (result.isEmpty()) {
         System.out.println("not recognised");
      } else {
         System.out.println(result.getResult().getName());
      }
   }
}				
					
				

External Configuration

package org.ximtec.igesture.app.helloworld;

import java.util.List;
import java.io.File;
import java.util.ArrayList;

import org.ximtec.igesture.Recogniser;
import org.ximtec.igesture.algorithm.AlgorithmException;
import org.ximtec.igesture.configuration.Configuration;
import org.ximtec.igesture.core.ResultSet;
import org.ximtec.igesture.io.ButtonDeviceEventListener;
import org.ximtec.igesture.io.InputDeviceClient;
import org.ximtec.igesture.io.MouseReader;
import org.ximtec.igesture.tool.GestureConfiguration;
import org.ximtec.igesture.util.XMLTools;
import org.ximtec.ipaper.io.InputDevice;
import org.ximtec.ipaper.io.InputDeviceEvent;

public class HelloWorldXML implements ButtonDeviceEventListener {

	private Recogniser recogniser;

	private InputDeviceClient client;

	public HelloWorldXML() throws AlgorithmException {
		GestureConfiguration appConfig = new GestureConfiguration("config.xml");
		Configuration configuration = XMLTools.importConfiguration(new File(
				this.getClass().getClassLoader().getResource(
						"configuration.xml").getFile()));

		recogniser = new Recogniser(configuration);

		List<InputDevice> pens = new ArrayList<InputDevice>();
		pens.add(new MouseReader());
		client = new InputDeviceClient(appConfig);

		client.addButtonDeviceEventListener(this);

		System.out.println("initialised...");
	}

	public static void main(String[] args) throws AlgorithmException {
		new HelloWorldXML();
	}

	public void handleButtonPressedEvent(InputDeviceEvent event) {
		ResultSet result = recogniser.recognise(client.createNote(0, event
				.getTimestamp(), 70));
		client.clearBuffer();
		if (result.isEmpty()) {
			System.out.println("not recognised");
		} else {
			System.out.println(result.getResult().getName());
		}
	}
}


				
					
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<algorithm name="org.ximtec.igesture.algorithm.siger.SigerRecogniser" />
	
	<set name="gestureSet1" id="1">
		<class name="LeftRight" id="2"><textDescriptor><text>E</text></textDescriptor></class>
		<class name="DownRight" id="3"><textDescriptor><text>S,E</text></textDescriptor></class>
		<class name="UpLeft" id="4"><textDescriptor><text>N,W</text></textDescriptor></class>
	</set>
</configuration>