Support close on stop functionality for headless output execution.
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/META-INF/MANIFEST.MF b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/META-INF/MANIFEST.MF
index 2ebce8b..d0f322b 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/META-INF/MANIFEST.MF
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/META-INF/MANIFEST.MF
@@ -30,3 +30,4 @@
org.eclipse.amp.escape.view
Bundle-Vendor: %providerName
Bundle-Localization: plugin
+Import-Package: org.apache.commons.lang.time
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMFEMFOutputHandler.java b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMFEMFOutputHandler.java
index 220826a..f8cb52e 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMFEMFOutputHandler.java
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMFEMFOutputHandler.java
@@ -15,10 +15,10 @@
*/
package org.eclipse.amp.escape.amf.ide;
-import org.ascape.runtime.Runner;
import org.eclipse.amp.escape.ide.EclipseEscapeRunner;
import org.eclipse.amp.escape.view.EMFDataOutputView;
-import org.eclipse.core.resources.IResource;
+
+import org.ascape.runtime.Runner;
// TODO: Auto-generated Javadoc
/**
@@ -26,8 +26,6 @@
*/
public class ExecuteAMFEMFOutputHandler extends ExecuteAMFHeadlessHandler {
- protected IResource modelResource;
-
/**
* Instantiates a new execute parameter handler.
*/
@@ -41,6 +39,12 @@
*/
protected EclipseEscapeRunner createRunner() {
Runner.setDisplayGraphics(!isHeadless());
+ // if (modelResource.getFileExtension().equals("apar")) {
+ // // a bit awkward..
+ // setInterpreter((AParInterpreter) AParFactory.create(null).getInterpreter(modelResource));
+ // eclipseRunner.open(project, getInterpreter().getRootContext().getImplementation().getQualifiedName(),
+ // getInterpreter().getRunName(), getInterpreter().getArgs());
+ // }
EclipseEscapeRunner runner = new EclipseEscapeRunner() {
private static final long serialVersionUID = 1L;
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMFHandler.java b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMFHandler.java
index 41f2b55..67eeeb2 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMFHandler.java
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteAMFHandler.java
@@ -29,6 +29,8 @@
public class ExecuteAMFHandler extends ExecuteHandler {
+ protected IResource modelResource;
+
public ExecuteAMFHandler() {
super(false);
}
@@ -39,7 +41,7 @@
protected void executeOpen(EclipseEscapeRunner eclipseRunner, Object executed, IProgressMonitor monitor) {
if (executed instanceof IResource) {
- IResource modelResource = (IResource) executed;
+ modelResource = (IResource) executed;
File file = modelResource.getLocation().toFile();
if (modelResource.getFileExtension().equals("metaabm")) {
try {
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteJavaEMFOutputHandler.java b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteJavaEMFOutputHandler.java
index 349bde7..26f2690 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteJavaEMFOutputHandler.java
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteJavaEMFOutputHandler.java
@@ -15,12 +15,13 @@
*/
package org.eclipse.amp.escape.amf.ide;
-import org.ascape.runtime.Runner;
import org.eclipse.amp.escape.command.ExecuteJavaHeadlessHandler;
import org.eclipse.amp.escape.ide.EclipseEscapeRunner;
import org.eclipse.amp.escape.view.EMFDataOutputView;
import org.eclipse.core.resources.IResource;
+import org.ascape.runtime.Runner;
+
// TODO: Auto-generated Javadoc
/**
* The Class ExecuteParameterHandler.
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteParamEMFOutputHandler.java b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteParamEMFOutputHandler.java
index 6d99e48..6327a15 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteParamEMFOutputHandler.java
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteParamEMFOutputHandler.java
@@ -15,10 +15,11 @@
*/
package org.eclipse.amp.escape.amf.ide;
-import org.ascape.runtime.Runner;
import org.eclipse.amp.escape.ide.EclipseEscapeRunner;
import org.eclipse.amp.escape.view.EMFDataOutputView;
+import org.ascape.runtime.Runner;
+
// TODO: Auto-generated Javadoc
/**
* The Class ExecuteParameterHandler.
@@ -54,6 +55,8 @@
}
};
+ runner.setCloseOnStop(true);
+ runner.setAutoRestart(false);
return runner;
}
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteParameterHandler.java b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteParameterHandler.java
index 8ec10ee..8b4494d 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteParameterHandler.java
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteParameterHandler.java
@@ -15,7 +15,6 @@
*/
package org.eclipse.amp.escape.amf.ide;
-import org.ascape.runtime.Runner;
import org.eclipse.amp.amf.parameters.AParFactory;
import org.eclipse.amp.amf.parameters.AParInterpreter;
import org.eclipse.amp.escape.command.ExecuteHandler;
@@ -24,6 +23,8 @@
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.ascape.runtime.Runner;
+
// TODO: Auto-generated Javadoc
/**
* The Class ExecuteParameterHandler.
@@ -62,6 +63,7 @@
if (modelResource.getFileExtension().equals("apar")) {
// a bit awkward..
setInterpreter((AParInterpreter) AParFactory.create(null).getInterpreter(modelResource));
+ eclipseRunner.setAutoRestart(false);
eclipseRunner.open(project, getInterpreter().getRootContext().getImplementation().getQualifiedName(),
getInterpreter().getRunName(), getInterpreter().getArgs());
}
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteParameterHeadlessHandler.java b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteParameterHeadlessHandler.java
index 1cab346..d81dc01 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteParameterHeadlessHandler.java
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/amf/ide/ExecuteParameterHeadlessHandler.java
@@ -15,6 +15,8 @@
*/
package org.eclipse.amp.escape.amf.ide;
+import org.eclipse.amp.escape.ide.EclipseEscapeRunner;
+
// TODO: Auto-generated Javadoc
/**
* The Class ExecuteParameterHeadlessHandler.
@@ -27,4 +29,15 @@
public ExecuteParameterHeadlessHandler() {
super(true);
}
+
+ /**
+ * @return
+ * @see org.eclipse.amp.escape.amf.ide.ExecuteParameterHandler#createRunner()
+ */
+ protected EclipseEscapeRunner createRunner() {
+ EclipseEscapeRunner runner = super.createRunner();
+ runner.setCloseOnStop(true);
+ runner.setAutoRestart(false);
+ return runner;
+ }
}
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/view/EMFDataOutputView.java b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/view/EMFDataOutputView.java
index b97a41f..9640b55 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/view/EMFDataOutputView.java
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.amf.ide/src/org/eclipse/amp/escape/view/EMFDataOutputView.java
@@ -24,10 +24,6 @@
import java.util.Map;
import java.util.TooManyListenersException;
-import org.ascape.model.event.ScapeEvent;
-import org.ascape.util.PropertyAccessor;
-import org.ascape.util.data.DataSeries;
-import org.ascape.view.nonvis.DataView;
import org.eclipse.amp.amf.adata.Catalog;
import org.eclipse.amp.amf.adata.DataPackage;
import org.eclipse.amp.amf.adata.DataPoint;
@@ -37,6 +33,7 @@
import org.eclipse.amp.amf.adata.Run;
import org.eclipse.amp.amf.adata.ScaleType;
import org.eclipse.amp.amf.adata.impl.DataFactoryImpl;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
@@ -47,6 +44,12 @@
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.ascape.model.event.ScapeEvent;
+import org.ascape.util.PropertyAccessor;
+import org.ascape.util.data.DataSeries;
+import org.ascape.view.nonvis.DataView;
+
/**
*
* @author mparker
@@ -78,11 +81,19 @@
IProject project = resource.getProject();
IPath projectPath = RESULTS_FOLDER.append(
resource.getProjectRelativePath().removeFirstSegments(1)
- .removeLastSegments(1)).append(name + ".adata");
+ .removeLastSegments(1)).append(
+ getFileName(resource)
+ + ".adata");
dataFileURI = URI.createPlatformResourceURI(project.getName() + "/" + projectPath, true);
}
+ private String getFileName(IResource resource) {
+ String name = ((IFile) resource).getProjectRelativePath().removeFileExtension().lastSegment();
+ name += DateFormatUtils.format(System.currentTimeMillis(), "MM-dd-yy_HH-mm-S");
+ return name;
+ }
+
/**
* @param scapeEvent
* @throws TooManyListenersException
@@ -137,19 +148,19 @@
measure.setAttribute(selectedSeries.getDataPoint().getName());
if (selectedSeries.getMeasureName() == "Count") {
- measure.setMeasure(ScaleType.COUNT);
+ measure.setType(ScaleType.COUNT);
} else if (selectedSeries.getMeasureName() == "Sum") {
- measure.setMeasure(ScaleType.SUM);
+ measure.setType(ScaleType.SUM);
} else if (selectedSeries.getMeasureName() == "Average") {
- measure.setMeasure(ScaleType.AVERAGE);
+ measure.setType(ScaleType.AVERAGE);
} else if (selectedSeries.getMeasureName() == "Minimum") {
- measure.setMeasure(ScaleType.MINIMUM);
+ measure.setType(ScaleType.MINIMUM);
} else if (selectedSeries.getMeasureName() == "Maximum") {
- measure.setMeasure(ScaleType.MAXIMUM);
+ measure.setType(ScaleType.MAXIMUM);
} else if (selectedSeries.getMeasureName() == "Standard Deviation") {
- measure.setMeasure(ScaleType.STANDARD_DEVIATION);
+ measure.setType(ScaleType.STANDARD_DEVIATION);
} else if (selectedSeries.getMeasureName() == "Variance") {
- measure.setMeasure(ScaleType.VARIANCE);
+ measure.setType(ScaleType.VARIANCE);
}
measureForSeries.put(selectedSeries, measure);
@@ -217,15 +228,6 @@
super.scapeStopped(scapeEvent);
}
- /**
- * @param scapeEvent
- * @see org.ascape.model.event.DefaultScapeListener#scapeClosing(org.ascape.model.event.ScapeEvent)
- */
- public void scapeClosing(ScapeEvent scapeEvent) {
- saveResults();
- super.scapeClosing(scapeEvent);
- }
-
private synchronized void saveResults() {
Map<Object, Object> saveOptions = new HashMap<Object, Object>();
try {