package org.jnect.demo.incquery.esper.robot;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.incquery.runtime.api.IncQueryEngine;
import org.eclipse.incquery.runtime.exception.IncQueryException;
import org.jnect.core.KinectManager;
import org.jnect.demo.incquery.esper.EsperAdapter;
import org.jnect.demo.incquery.esper.EsperManager;
import bodymodel.ymca.BEMatcher;
import bodymodel.ymca.BSMatcher;
import bodymodel.ymca.FEMatcher;
import bodymodel.ymca.FSMatcher;
//import bodymodel.jump.JumpMatcher;
/**
* Handler class for the Jnect/IncQuery awt.Robot demo.
* @author istvanrath
*
*/
public class StartCombinedRobotDemoHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
if (KinectManager.INSTANCE.isSkeletonTrackingStarted()) {
try {
Notifier km = KinectManager.INSTANCE.getSkeletonModel();
IncQueryEngine e = IncQueryEngine.on(km);
// adapters for the powerpoint robot demo
new EsperAdapter(FSMatcher.on(e));
new EsperAdapter(FEMatcher.on(e));
new EsperAdapter(BSMatcher.on(e));
new EsperAdapter(BEMatcher.on(e));
} catch (IncQueryException e) {
e.printStackTrace();
}
EsperManager.getInstance().registerRobotListeners();
} else {
System.out.println("Start skeleton simulator first!");
}
return null;
}
}