package org.jnect.demo.incquery.sheldon;
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.SEMatcher;
import bodymodel.ymca.SMMatcher;
import bodymodel.ymca.SSMatcher;
//import bodymodel.jump.JumpMatcher;
/**
* Handler class for the Sheldon Control demo.
* @author istvanrath
*
*/
public class StartCombinedSheldonDemoHandler 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 sheldon
new EsperAdapter(SEMatcher.on(e));
new EsperAdapter(SMMatcher.on(e));
new EsperAdapter(SSMatcher.on(e));
} catch (IncQueryException e) {
e.printStackTrace();
}
EsperManager.getInstance().registerSheldonListeners();
} else {
System.out.println("Start skeleton simulator first!");
}
return null;
}
}