public Object execute(ExecutionEvent event) throws ExecutionException {
try {
XtextEditor editor = EditorUtils.getActiveXtextEditor(event);
if(editor != null) {
final ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection();
IPPQueryData context = editor.getDocument().readOnly(new IUnitOfWork<IPPQueryData, XtextResource>() {
public IPPQueryData exec(XtextResource localResource) throws Exception {
return createQueryData(localResource, selection);
}
});
if(context != null) {
QueryExecutor queryExecutor = globalServiceProvider.findService(
context.getLeadElementURI().trimFragment(), QueryExecutor.class);
if(queryExecutor != null) {
queryExecutor.execute(context);
}
}
}