import org.simantics.db.common.request.ResourceRead;
import org.simantics.db.common.request.WriteRequest;
import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.layer0.variable.Variable;
import org.simantics.db.request.Read;
import org.simantics.db.service.TransactionSupport;
import org.simantics.db.service.VirtualGraphSupport;
import org.simantics.g2d.element.ElementHints;
import org.simantics.g2d.element.IElement;
import org.simantics.g2d.scenegraph.ICanvasSceneGraphProvider;
+import org.simantics.g2d.scenegraph.ICanvasSceneGraphProvider2;
import org.simantics.modeling.ModelingResources;
import org.simantics.scenegraph.INode;
import org.simantics.scenegraph.adapters.ISceneGraphProvider;
};
}
- public static ICanvasSceneGraphProvider loadSceneGraphProvider(Resource model, Resource diagram, String diagramRVI) throws DatabaseException, InterruptedException {
+ public static ICanvasSceneGraphProvider loadSceneGraphProvider(Resource model, Resource diagram, String diagramRVI) throws DatabaseException {
Resource composite = Simantics.getSession().syncRequest( diagramToComposite(diagram) );
return loadSceneGraphProviderForComposite(model, composite, diagramRVI);
}
return cp.getCanvasContext();
}
- public static ICanvasSceneGraphProvider loadSceneGraphProviderForComposite(Resource model, Resource composite, String diagramRVI) throws DatabaseException, InterruptedException {
+ public static ICanvasSceneGraphProvider loadSceneGraphProviderForComposite(Resource model, Resource composite, String diagramRVI) throws DatabaseException {
String modelURI = Simantics.getSession().syncRequest(Queries.uri(model));
ISceneGraphProvider provider = Simantics.getSession().syncRequest( Queries.adapt( composite, ISceneGraphProvider.class ) );
ICanvasSceneGraphProvider cp = (ICanvasSceneGraphProvider) provider;
}
public static ICanvasSceneGraphProvider loadSceneGraphProviderForDiagram(ICanvasContext context, Resource model, Resource diagram, String diagramRVI) throws DatabaseException, InterruptedException {
+ return loadSceneGraphProviderForDiagram(context, model, diagram, diagramRVI, null);
+ }
+
+ public static ICanvasSceneGraphProvider loadSceneGraphProviderForDiagram(ICanvasContext context, Resource model, Resource diagram, String diagramRVI, Variable run) throws DatabaseException, InterruptedException {
String modelURI = Simantics.getSession().syncRequest(Queries.uri(model));
ISceneGraphProvider provider = Simantics.getSession().syncRequest( Queries.adapt( diagram, ISceneGraphProvider.class ) );
ICanvasSceneGraphProvider cp = (ICanvasSceneGraphProvider) provider;
- cp.initializeSceneGraph(context, modelURI, diagramRVI);
+ if(cp instanceof ICanvasSceneGraphProvider2) {
+ ((ICanvasSceneGraphProvider2)cp).initializeSceneGraph(context, modelURI, diagramRVI, run);
+
+ } else {
+ cp.initializeSceneGraph(context, modelURI, diagramRVI);
+ }
NodeUtil.waitPending(cp.getCanvasContext().getThreadAccess(), context.getSceneGraph());
Simantics.getSession().getService(TransactionSupport.class).waitCompletion();
return cp;