Eclipseplugins
RunProAlphaProgramHandler.java
1 package com.proalpha.pds.ui.handlers;
2 
3 import java.lang.reflect.InvocationTargetException;
4 
5 import org.eclipse.core.commands.ExecutionEvent;
6 import org.eclipse.core.commands.ExecutionException;
7 import org.eclipse.core.resources.ResourcesPlugin;
8 import org.eclipse.core.runtime.jobs.ISchedulingRule;
9 import org.eclipse.jface.operation.IRunnableContext;
10 import org.eclipse.jface.operation.IRunnableWithProgress;
11 import org.eclipse.ui.PlatformUI;
12 
13 import com.proalpha.pds.exception.ProALPHANotAvailableException;
14 import com.proalpha.pds.paconnector.Activator;
15 import com.proalpha.pds.paconnector.PaProject;
16 import com.proalpha.pds.paconnector.utils.ExceptionUtils;
17 import com.proalpha.pds.ui.AbstractProAlphaHandler;
18 
20 
21  @Override
22  public Object execute(ExecutionEvent event) throws ExecutionException {
23 
24  PaProject paProject;
25  String fileName;
26  try {
27  paProject = getPaProjectOfEvent(event);
28  fileName = getOeFileOfEvent(event);
29  runProgram(paProject, fileName);
30  } catch (ProALPHANotAvailableException e) {
32  }
33 
34  return null;
35  }
36 
37  private static void runProgram(PaProject paProject, String fileName) {
38  IRunnableWithProgress runnable = monitor -> {
39  monitor.beginTask("Run proALPHA Program", 2);
40  monitor.worked(1);
41  paProject.getBridge().runProgram(fileName);
42  monitor.done();
43  };
44 
45  ISchedulingRule rule = ResourcesPlugin.getWorkspace().getRoot();
46  IRunnableContext context = PlatformUI.getWorkbench().getProgressService();
47 
48  try {
49  PlatformUI.getWorkbench().getProgressService().runInUI(context, runnable, rule);
50  } catch (InvocationTargetException e) {
52  } catch (InterruptedException e) {
54  Thread.currentThread().interrupt();
55  }
56  }
57 }
static void showAndLogErrorMessage(AbstractUIPlugin plugin, Throwable exception)
PaProject getPaProjectOfEvent(ExecutionEvent event)