X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.simulation%2Fsrc%2Forg%2Fsimantics%2Fsimulation%2Fproject%2FExperimentRuns.java;h=5edf6c856ca80a020e394afeab4ba53e0e883fb6;hp=21fcf2c268847704ad00375f60dcbe525dca309b;hb=f212fa100ac8c0ce464a826794b3d1737b138b25;hpb=c758b43751ff59edd81ab85ea7bd320446824d99 diff --git a/bundles/org.simantics.simulation/src/org/simantics/simulation/project/ExperimentRuns.java b/bundles/org.simantics.simulation/src/org/simantics/simulation/project/ExperimentRuns.java index 21fcf2c26..5edf6c856 100644 --- a/bundles/org.simantics.simulation/src/org/simantics/simulation/project/ExperimentRuns.java +++ b/bundles/org.simantics.simulation/src/org/simantics/simulation/project/ExperimentRuns.java @@ -82,6 +82,37 @@ public class ExperimentRuns { final IExperimentActivationListener listener, final Function2 externalWrite, final Consumer successCallback) + { + createRun(session, vg, + experimentResource, experiment, experimentRunTypeURI, + listener, externalWrite, successCallback, true); + } + + /** + * Create new experiment run in a selected virtual graph. + * + * @param session + * @param vg + * @param experimentResource + * @param experiment + * @param experimentRunTypeURI + * @param listener + * @param successCallback if non-null invoked with the created run resource + * as an argument, just before invoking + * listener.onExperimentActivated(experiment) + * @param attachDeactivationListener true to run for the created run-resource + * {@link #attachStateListener(Session, IExperiment, Resource)} + */ + public static void createRun( + Session session, + VirtualGraph vg, + Resource experimentResource, + IExperiment experiment, + String experimentRunTypeURI, + IExperimentActivationListener listener, + Function2 externalWrite, + Consumer successCallback, + boolean attachDeactivationListener) { final AtomicReference run = new AtomicReference<>(); session.asyncRequest(new WriteRequest(vg) { @@ -97,7 +128,8 @@ public class ExperimentRuns { else ErrorLogger.defaultLogError(e); } else { - attachStateListener(session, experiment, run.get()); + if (attachDeactivationListener) + attachStateListener(session, experiment, run.get()); if (successCallback != null) successCallback.accept(run.get()); if (listener != null)