X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.diagram%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fadapter%2FConnectionRequest2.java;h=a19bc3dad141921dae5a46e67277e611406c672a;hb=052c827e209230bd428e74180caed3620280a31f;hp=36a01b54c641a0e1a6a67dac6dd2fbec481aad7e;hpb=90a52d58489b6c518b13dde238923125c8f63eec;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/ConnectionRequest2.java b/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/ConnectionRequest2.java index 36a01b54c..a19bc3dad 100644 --- a/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/ConnectionRequest2.java +++ b/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/ConnectionRequest2.java @@ -11,6 +11,8 @@ *******************************************************************************/ package org.simantics.diagram.adapter; +import java.util.List; + import org.simantics.db.AsyncReadGraph; import org.simantics.db.Resource; import org.simantics.db.common.primitiverequest.Adapter; @@ -19,6 +21,7 @@ import org.simantics.db.procedure.AsyncProcedure; import org.simantics.diagram.synchronization.ErrorHandler; import org.simantics.g2d.canvas.ICanvasContext; import org.simantics.g2d.diagram.IDiagram; +import org.simantics.g2d.diagram.handler.SubstituteElementClass; import org.simantics.g2d.element.ElementClass; import org.simantics.g2d.element.IElement; import org.simantics.scl.runtime.tuple.Tuple3; @@ -75,7 +78,13 @@ public class ConnectionRequest2 extends BaseRequest2 { } @Override - public void execute(AsyncReadGraph graph, final ElementClass ec) { + public void execute(AsyncReadGraph graph, ElementClass mutableClazz) { + + List substitutes = diagram.getDiagramClass().getItemsByClass(SubstituteElementClass.class); + for (SubstituteElementClass subs : substitutes) { + mutableClazz = subs.substitute(diagram, mutableClazz); + } + final ElementClass ec = mutableClazz; graph.asyncRequest(new SpawnRequest(canvas, ec, data), new TransientCacheAsyncListener() {