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();
 }