package org.jnect.demo.incquery.esper;
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 bodymodel.ymca.AMatcher;
import bodymodel.ymca.CMatcher;
import bodymodel.ymca.IMatcher;
import bodymodel.ymca.MMatcher;
import bodymodel.ymca.QMatcher;
import bodymodel.ymca.YMatcher;
/**
* Handler class for the Jnect/IncQuery awt.Robot demo.
* @author istvanrath
*
*/
public class StartCombinedYMCADemoHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
if (KinectManager.INSTANCE.isSkeletonTrackingStarted()) {
try {
Notifier km = KinectManager.INSTANCE.getSkeletonModel();
// adapters for the YMCA demo
IncQueryEngine e = IncQueryEngine.on(km);
new EsperAdapter(YMatcher.on(e));
new EsperAdapter(MMatcher.on(e));
new EsperAdapter(CMatcher.on(e));
new EsperAdapter(AMatcher.on(e));
new EsperAdapter(IMatcher.on(e));
new EsperAdapter(QMatcher.on(e));
} catch (IncQueryException e) {
e.printStackTrace();
}
EsperManager.getInstance().registerYMCAListeners();
} else {
System.out.println("Start skeleton simulator first!");
}
return null;
}
}