Bug 545823: Provide access to the monitor of the current engine
added getMonitor() to the script engine
Change-Id: I52545a60035a524ee547be9996b0f3be681622cb
diff --git a/plugins/org.eclipse.ease/src/org/eclipse/ease/AbstractScriptEngine.java b/plugins/org.eclipse.ease/src/org/eclipse/ease/AbstractScriptEngine.java
index 71cc1a9..c467609 100644
--- a/plugins/org.eclipse.ease/src/org/eclipse/ease/AbstractScriptEngine.java
+++ b/plugins/org.eclipse.ease/src/org/eclipse/ease/AbstractScriptEngine.java
@@ -117,6 +117,8 @@
/** Launch associated with this engine. */
private ILaunch fLaunch = null;
+ private IProgressMonitor fMonitor;
+
/**
* Constructor. Sets the name for the underlying job.
*
@@ -272,6 +274,8 @@
@Override
protected IStatus run(final IProgressMonitor monitor) {
+ fMonitor = monitor;
+
Logger.trace(Activator.PLUGIN_ID, TRACE_SCRIPT_ENGINE, "Engine started: " + getName());
IStatus returnStatus = Status.OK_STATUS;
@@ -363,9 +367,16 @@
}
monitor.done();
+ fMonitor = null;
+
return returnStatus;
}
+ @Override
+ public IProgressMonitor getMonitor() {
+ return fMonitor;
+ }
+
private void closeStreams() {
if (fCloseStreamsOnTerminate) {
// gracefully close I/O streams
diff --git a/plugins/org.eclipse.ease/src/org/eclipse/ease/IScriptEngine.java b/plugins/org.eclipse.ease/src/org/eclipse/ease/IScriptEngine.java
index 3c88c93..1ead3d3 100644
--- a/plugins/org.eclipse.ease/src/org/eclipse/ease/IScriptEngine.java
+++ b/plugins/org.eclipse.ease/src/org/eclipse/ease/IScriptEngine.java
@@ -18,6 +18,7 @@
import java.net.URL;
import java.util.Map;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Platform;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.ease.service.EngineDescription;
@@ -239,4 +240,11 @@
* @return launch or <code>null</code> in case this engine was created without launch configuration
*/
ILaunch getLaunch();
+
+ /**
+ * Get the monitor of the current running engine. The monitor is only valid while the script engine is running.
+ *
+ * @return current monitor or <code>null</code>
+ */
+ IProgressMonitor getMonitor();
}