Refectoring
diff --git a/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.chart/src/org/eclipse/amp/agf/chart/ChartViewPart.java b/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.chart/src/org/eclipse/amp/agf/chart/ChartViewPart.java
index dfbb746..5db9f91 100644
--- a/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.chart/src/org/eclipse/amp/agf/chart/ChartViewPart.java
+++ b/org.eclipse.amp.agf/plugins/org.eclipse.amp.agf.chart/src/org/eclipse/amp/agf/chart/ChartViewPart.java
@@ -25,37 +25,43 @@
* The Class ChartViewPart.
*/
public class ChartViewPart extends EditPartViewPart {
- CachedColorProvider seriesColorProvider = new CachedColorProvider();
- public RootEditPart createRoot() {
- return new ScalableRootEditPart() {
- public void refresh() {
- ((EditPart) getChildren().get(0)).refresh();
- }
- };
- }
+ public static final String VIEW_ID = "org.eclipse.amp.view.ChartView";
- /**
- *
- * @see org.eclipse.amp.agf.gef.EditPartViewPart#createModelListeners()
- */
- public void createModelListeners() {
- // super.createModelListeners();
- // getRootListener().setWaitForUpdate(false);
- }
+ CachedColorProvider seriesColorProvider = new CachedColorProvider();
- @Override
- public EditPartFactory createFactory(Object contents) {
- return new EditPartFactory() {
- public EditPart createEditPart(EditPart context, Object object) {
- ChartEditPart chartPart = new ChartEditPart();
+ @Override
+ public RootEditPart createRoot() {
+ return new ScalableRootEditPart() {
+ @Override
+ public void refresh() {
+ ((EditPart) getChildren().get(0)).refresh();
+ }
+ };
+ }
- chartPart.setSeriesColorProvider(seriesColorProvider);
+ /**
+ *
+ * @see org.eclipse.amp.agf.gef.EditPartViewPart#createModelListeners()
+ */
+ @Override
+ public void createModelListeners() {
+ // super.createModelListeners();
+ // getRootListener().setWaitForUpdate(false);
+ }
- chartPart.setModel(getModel());
- return chartPart;
- };
- };
- }
+ @Override
+ public EditPartFactory createFactory(Object contents) {
+ return new EditPartFactory() {
+ public EditPart createEditPart(EditPart context, Object object) {
+ ChartEditPart chartPart = new ChartEditPart();
+
+ chartPart.setSeriesColorProvider(seriesColorProvider);
+
+ chartPart.setModel(getModel());
+ return chartPart;
+ }
+ };
+ }
}
diff --git a/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/META-INF/MANIFEST.MF b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/META-INF/MANIFEST.MF
index 6c5e909..4eef267 100644
--- a/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/META-INF/MANIFEST.MF
+++ b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/META-INF/MANIFEST.MF
@@ -3,8 +3,7 @@
Bundle-Name: Test AXF IDE
Bundle-SymbolicName: org.eclipse.amp.axf.ide.test;singleton:=true
Bundle-Version: 0.9.0
-Bundle-Activator: org.eclipse.amp.axf.ide.test.Activator
-Bundle-Vendor: eclipse.org
+Fragment-Host: org.eclipse.amp.axf.ide
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.amp.axf.ide,
diff --git a/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/build.properties b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/build.properties
index d16ffb7..62a7813 100644
--- a/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/build.properties
+++ b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/build.properties
@@ -3,5 +3,6 @@
bin.includes = META-INF/,\
.,\
res/,\
- about.html
+ about.html,\
+ fragment.xml
src.includes = res/
diff --git a/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/fragment.xml b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/fragment.xml
new file mode 100644
index 0000000..2812aef
--- /dev/null
+++ b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/fragment.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<fragment>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ allowMultiple="true"
+ class="org.eclipse.amp.axf.ide.EmtyView"
+ id="org.eclipse.amp.axf.ide.EmtyView"
+ name="EmtyView"
+ restorable="true">
+ </view>
+ </extension>
+
+</fragment>
diff --git a/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/src/org/eclipse/amp/axf/ide/EmtyView.java b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/src/org/eclipse/amp/axf/ide/EmtyView.java
new file mode 100644
index 0000000..1a8662a
--- /dev/null
+++ b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/src/org/eclipse/amp/axf/ide/EmtyView.java
@@ -0,0 +1,7 @@
+package org.eclipse.amp.axf.ide;
+
+import org.eclipse.amp.axf.view.ModelViewPart;
+
+public class EmtyView extends ModelViewPart {
+ public final static String VIEW_ID = "org.eclipse.amp.axf.ide.EmtyView";
+}
diff --git a/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/src/org/eclipse/amp/axf/ide/ModelViewManagerTest.java b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/src/org/eclipse/amp/axf/ide/ModelViewManagerTest.java
new file mode 100644
index 0000000..1f6f9d2
--- /dev/null
+++ b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/src/org/eclipse/amp/axf/ide/ModelViewManagerTest.java
@@ -0,0 +1,82 @@
+package org.eclipse.amp.axf.ide;
+
+import static org.junit.Assert.fail;
+
+import org.ascape.model.Scape;
+import org.eclipse.amp.agf.gef.ModelEditPartInput;
+import org.eclipse.amp.axf.core.IEngine;
+import org.eclipse.amp.axf.core.IModel;
+import org.eclipse.amp.escape.ascape.wrap.ScapeWrapperModel;
+import org.eclipse.amp.escape.ide.EclipseEscapeRunner;
+import org.junit.Before;
+import org.junit.Test;
+
+public class ModelViewManagerTest {
+
+ private ModelViewManager classToTest;
+
+ private ModelEditPartInput modelInput;
+
+ @Before
+ public void setUp() throws Exception {
+ classToTest = ModelViewManager.createNewInstance();
+ EclipseEscapeRunner runner = new EclipseEscapeRunner() {
+ @Override
+ public void close() {
+ //
+ }
+ };
+ SimpleModel model = new SimpleModel(new Scape());
+ model.engine = runner;
+ classToTest.register(model, runner);
+ modelInput = new ModelEditPartInput(model, null);
+ }
+
+ /**
+ * The Method should also be callable if the main Thread is the caller Bug: The Application has a deadlock if the main
+ * Thread call the method
+ */
+ @Test
+ public void testCreateViewPart() {
+ ObserverThread thread = new ObserverThread();
+ thread.mainThread = Thread.currentThread();
+ thread.start();
+ classToTest.createViewPart(EmtyView.VIEW_ID, modelInput, "viewName");
+ if(thread.mainThreadInterrupted){
+ fail("Deadlock in createViewPart?");
+ }
+ thread.interrupt();
+ }
+
+ private class ObserverThread extends Thread{
+ Thread mainThread;
+ boolean mainThreadInterrupted = false;
+ public ObserverThread() {
+ //
+ }
+ @Override
+ public void run() {
+ try {
+ sleep(10000);
+ mainThreadInterrupted = true;
+ mainThread.interrupt();
+ } catch (InterruptedException e) {
+ //
+ }
+ }
+ }
+
+ private class SimpleModel extends ScapeWrapperModel implements IModel {
+ IEngine engine;
+
+ public SimpleModel(Scape scape) {
+ super(scape);
+ }
+
+ @Override
+ public IEngine getEngine() {
+ return engine;
+ }
+
+ }
+}
diff --git a/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/src/org/eclipse/amp/axf/ide/handlers/ModelRunHandlerTest.java b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/src/org/eclipse/amp/axf/ide/handlers/ModelRunHandlerTest.java
index 0ad3359..5545dd6 100644
--- a/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/src/org/eclipse/amp/axf/ide/handlers/ModelRunHandlerTest.java
+++ b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide.test/src/org/eclipse/amp/axf/ide/handlers/ModelRunHandlerTest.java
@@ -148,6 +148,7 @@
}
public void addModelListener(ILifeCycleListener listener) {
+ //
}
public Collection<ILifeCycleListener> getModelListeners() {
@@ -155,6 +156,7 @@
}
public void removeModelListener(ILifeCycleListener listener) {
+ //
}
public String getTimeDescription() {
@@ -180,58 +182,52 @@
public IEngine getEngine() {
return new IEngine() {
- @Override
public void stop() {
+ //
}
- @Override
public void setUpdateGranularity(ITimeGranularity granularity) {
+ //
}
- @Override
public void observationComplete(ILifeCycleListener observer) {
+ //
}
- @Override
public boolean isThreadAlive() {
return false;
}
- @Override
public boolean isRunning() {
return false;
}
- @Override
public boolean isPaused() {
return false;
}
- @Override
public boolean isCloseRequested() {
return false;
}
- @Override
public ITimeGranularity getUpdateGranularity() {
return null;
}
- @Override
public IObservationProvider getModel() {
return DummyModel.this;
}
- @Override
public void control(EngineControl ModelControl) {
+ //
}
- @Override
public void closeFinally() {
+ //
}
- @Override
public void close() {
+ //
}
};
}
diff --git a/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide/src/org/eclipse/amp/axf/ide/ModelViewManager.java b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide/src/org/eclipse/amp/axf/ide/ModelViewManager.java
index 5fe76e2..6411f28 100644
--- a/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide/src/org/eclipse/amp/axf/ide/ModelViewManager.java
+++ b/org.eclipse.amp.axf/plugins/org.eclipse.amp.axf.ide/src/org/eclipse/amp/axf/ide/ModelViewManager.java
@@ -56,8 +56,6 @@
private static ModelViewManager instance;
- boolean updated;
-
String priorPerspectiveID;
Map<IModel, List<IViewPart>> viewsForModel;
@@ -107,6 +105,16 @@
return instance;
}
+ /**
+ * Only used for Unittests.
+ *
+ * @return
+ */
+ static ModelViewManager createNewInstance() {
+ instance = null;
+ return getInstance();
+ }
+
private final class PartCreator implements Runnable {
private final String name;
@@ -116,7 +124,7 @@
IViewPart part;
- private PartCreator(String name, ModelInput editorInput, String id) {
+ PartCreator(String name, ModelInput editorInput, String id) {
this.name = name;
this.editorInput = editorInput;
this.id = id;
@@ -149,13 +157,12 @@
}
}.start();
} else if (part instanceof ErrorViewPart) {
+ //
} else {
throw new RuntimeException("Couldn't create model view part.");
}
} catch (org.eclipse.ui.PartInitException e) {
throw new RuntimeException("Couldn't instantiate model view " + this, e);
- } finally {
- updated = true;
}
}
@@ -168,7 +175,7 @@
*
* @author mparker
*/
- private final class ActivationListener implements IPartListener {
+ final class ActivationListener implements IPartListener {
private void assignPart(final IWorkbenchPart part) {
if (part instanceof IModelPart && ((IModelPart) part).getAdapter(IModel.class) != null) {
new Thread() {
@@ -201,6 +208,7 @@
}
public void partDeactivated(IWorkbenchPart part) {
+ //
}
public void partOpened(IWorkbenchPart part) {
@@ -393,16 +401,8 @@
* the name
*/
public IViewPart createViewPart(final String id, final ModelInput editorInput, final String name) {
- updated = false;
PartCreator creator = new PartCreator(name, editorInput, id);
- PlatformUI.getWorkbench().getDisplay().asyncExec(creator);
- while (!updated) {
- try {
- Thread.sleep(50);
-
- } catch (InterruptedException e) {
- }
- }
+ PlatformUI.getWorkbench().getDisplay().syncExec(creator);
return creator.getPart();
}
@@ -487,6 +487,7 @@
wb.addWorkbenchListener(new IWorkbenchListener() {
public void postShutdown(IWorkbench workbench) {
+ //
}
public boolean preShutdown(IWorkbench workbench, boolean forced) {
@@ -572,8 +573,7 @@
* @param adaptableObject
* @param adapterType
* @return
- * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object,
- * java.lang.Class)
+ * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
*/
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (adapterType == IEngine.class && adaptableObject instanceof IModel) {
@@ -592,6 +592,7 @@
* @return
* @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
*/
+ @SuppressWarnings("rawtypes")
public Class[] getAdapterList() {
return new Class[] { IEngine.class, IModel.class };
}
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 34c47ff..3264fe6 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
@@ -70,6 +70,7 @@
private ResourceSet resourceSet;
private Catalog catalog;
+
private Run currentRun;
Map<DataSeries, Measurement> measureForSeries = new HashMap<DataSeries, Measurement>();
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.ascape.chart/src/org/ascape/view/vis/ChartView.java b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.ascape.chart/src/org/ascape/view/vis/ChartView.java
index b670d83..234f097 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.ascape.chart/src/org/ascape/view/vis/ChartView.java
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.ascape.chart/src/org/ascape/view/vis/ChartView.java
@@ -15,6 +15,7 @@
import org.ascape.util.data.DataSelection;
import org.eclipse.amp.agf.chart.CachedColorProvider;
import org.eclipse.amp.agf.chart.ChartEditPart;
+import org.eclipse.amp.agf.chart.ChartViewPart;
import org.eclipse.amp.escape.ascape.view.EditPartScapeView;
import org.eclipse.gef.EditPart;
import org.eclipse.swt.graphics.Color;
@@ -29,7 +30,7 @@
CachedColorProvider seriesColorProvider = new CachedColorProvider();
public ChartView() {
- super("org.eclipse.amp.view.ChartView", null, "Chart View");
+ super(ChartViewPart.VIEW_ID, null, "Chart View");
}
public EditPart createEditPart(EditPart context, Object model) {
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.ascape.chart/src/org/eclipse/amp/escape/ascape/chart/ChartCustomizer.java b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.ascape.chart/src/org/eclipse/amp/escape/ascape/chart/ChartCustomizer.java
index 4ef6591..01a1e26 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.ascape.chart/src/org/eclipse/amp/escape/ascape/chart/ChartCustomizer.java
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.ascape.chart/src/org/eclipse/amp/escape/ascape/chart/ChartCustomizer.java
@@ -25,8 +25,6 @@
import org.eclipse.amp.agf.chart.ChartEditPart;
import org.eclipse.amp.agf.chart.ChartViewPart;
import org.eclipse.amp.escape.ascape.wrap.ScapeWrapperModel;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.draw2d.SWTGraphics;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CheckboxCellEditor;
@@ -44,24 +42,19 @@
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Table;
-import org.eclipse.ui.IActionBars;
import org.eclipse.ui.IPartListener;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.statushandlers.StatusManager;
-// TODO: Auto-generated Javadoc
-/**
- * The Class ChartCustomizer.
- */
+
public class ChartCustomizer extends ViewPart {
+
+ public static final String VIEW_ID = "org.eclipse.amp.view.customizer.Chart";
protected Scape scape;
protected DataSelection dataSelection;
@@ -148,7 +141,7 @@
protected CellEditor getCellEditor(final Object element) {
CheckboxCellEditor checkboxCellEditor = checkBoxFor.get(element);
if (checkboxCellEditor == null) {
- checkboxCellEditor = new CheckboxCellEditor(selectTable
+ checkboxCellEditor = new CheckboxCellEditor(getSelectTable()
.getTable());
}
return checkboxCellEditor;
@@ -185,13 +178,13 @@
getSite().getShell().getDisplay().syncExec(new Runnable() {
public void run() {
chartEditPart.refresh();
- };
+ }
});
getSite().getShell().getDisplay().asyncExec(new Runnable() {
public void run() {
- selectTable.getTable().deselectAll();
- selectTable.refresh(true);
- };
+ getSelectTable().getTable().deselectAll();
+ getSelectTable().refresh(true);
+ }
});
}
}
@@ -222,6 +215,7 @@
* @return
* @see org.eclipse.jface.viewers.ColumnLabelProvider#getText(java.lang.Object)
*/
+ @Override
public String getText(Object element) {
return null;
}
@@ -263,6 +257,7 @@
* @return
* @see org.eclipse.jface.viewers.ColumnLabelProvider#getBackground(java.lang.Object)
*/
+ @Override
public Color getBackground(Object element) {
DataSeries dataSeries = getDataSeries(element);
if (dataSeries == null) {
@@ -291,6 +286,7 @@
* @param parent
* @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
*/
+ @Override
public void createPartControl(Composite parent) {
// Overall
control = new Composite(parent, SWT.HORIZONTAL);
@@ -370,15 +366,19 @@
}
public void partBroughtToTop(IWorkbenchPart part) {
+ //
}
public void partClosed(IWorkbenchPart part) {
+ //
}
public void partDeactivated(IWorkbenchPart part) {
+ //
}
public void partOpened(IWorkbenchPart part) {
+ //
}
});
@@ -403,6 +403,7 @@
SWT.LEFT);
statNameColumn.getColumn().setText("Name");
statNameColumn.setLabelProvider(new ColumnLabelProvider() {
+ @Override
public String getText(Object element) {
return ((StatCollector) element).getName();
}
@@ -466,15 +467,7 @@
*/
@Override
public void setFocus() {
- }
-
- /**
- * Sets the action bars.
- *
- * @param actionBars
- * the new action bars
- */
- public void setActionBars(IActionBars actionBars) {
+ //
}
public ChartEditPart getChartEditPart() {
@@ -484,4 +477,8 @@
public void refresh() {
selectTable.refresh();
}
+
+ TableViewer getSelectTable() {
+ return selectTable;
+ }
}
\ No newline at end of file
diff --git a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.ide/src/org/eclipse/amp/escape/ide/EclipseEscapeRunner.java b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.ide/src/org/eclipse/amp/escape/ide/EclipseEscapeRunner.java
index f79165b..602f9c6 100644
--- a/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.ide/src/org/eclipse/amp/escape/ide/EclipseEscapeRunner.java
+++ b/org.eclipse.amp.escape/plugins/org.eclipse.amp.escape.ide/src/org/eclipse/amp/escape/ide/EclipseEscapeRunner.java
@@ -59,19 +59,23 @@
protected IProgressMonitor modelMonitor;
- IModel model;
+ private IModel model;
- IProject project;
+ private IProject project;
private IStatus finishStatus = Status.OK_STATUS;
- TimeGranularity updateGranularity = TimeGranularity.DEFAULT_GRANULARITY;
+ private ITimeGranularity updateGranularity = TimeGranularity.DEFAULT_GRANULARITY;
public final static long KILL_AFTER_NO_RESPONSE_TIME = 5000;
// would be nice to have this in Ascape proper but not worth IP submission
private boolean closeOnStop = false;
+ boolean modelShutdown = false;
+
+ private Job escapeRun;
+
/**
* Open.
*
@@ -117,6 +121,26 @@
* true if this method should only return on execution completion.
*/
public void open(final IResource projectResource, final String modelClassName, String modelName, String[] args, boolean block) {
+ openNotStart(projectResource, modelClassName, modelName, args);
+ start();
+ if (block) {
+ while (!modelShutdown) {
+ try {
+ Thread.sleep(30L);
+ } catch (InterruptedException e) {
+ //
+ }
+ }
+ }
+ }
+ /**
+ * Open all Files and initialize the Simulation, but don't run it.
+ * @param projectResource
+ * @param modelClassName
+ * @param modelName
+ * @param args
+ */
+ public void openNotStart(final IResource projectResource, final String modelClassName, String modelName, String[] args){
this.project = projectResource.getProject();
setStartOnOpen(false);
setAutoRestart(false);
@@ -162,17 +186,8 @@
model.addModelListener(listenerWrapper);
}
}
- start();
- if (block) {
- while (!modelShutdown) {
- try {
- Thread.sleep(30L);
- } catch (InterruptedException e) {
- }
- }
- }
}
-
+
protected void addConsole(String modelName) {
final MessageConsole eclipseConsole = new MessageConsole("Run " + modelName, null);
getEnvironment().getConsole().setIMessageStream(new MessageAdapter(eclipseConsole));
@@ -242,10 +257,6 @@
escapeRun.schedule();
}
- boolean modelShutdown = false;
-
- private Job escapeRun;
-
/**
*
* @see org.ascape.runtime.Runner#close()
@@ -284,6 +295,7 @@
elapsed += 30;
}
} catch (InterruptedException e) {
+ //
}
if (modelMonitor != null) {
modelMonitor.setTaskName("Closed");
@@ -439,7 +451,7 @@
* @see org.eclipse.amp.axf.core.IEngine#setUpdateGranularity(org.eclipse.amp.axf.time.ITimeGranularity)
*/
public void setUpdateGranularity(ITimeGranularity granularity) {
- this.updateGranularity = (TimeGranularity) granularity;
+ this.updateGranularity = granularity;
}
public IProject getExecutingProject() {
@@ -484,5 +496,8 @@
public boolean isThreadAlive() {
return isModelThreadAlive();
}
-
+
+ public Job getEscapeRun() {
+ return escapeRun;
+ }
}