X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.diagram%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fadapter%2FFlagClassFactory.java;h=94acc5116451a805d3e67cbf42f21809e47a9a46;hb=ffd2a3a8215264a02b0a59ac04edc314283f6607;hp=30efa54f0301b3724f2fe0f95e88e5df56c6e202;hpb=e3f78a075fb589c0c940f6e13d92a45a39a3ac0f;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/FlagClassFactory.java b/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/FlagClassFactory.java index 30efa54f0..94acc5116 100644 --- a/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/FlagClassFactory.java +++ b/bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/FlagClassFactory.java @@ -33,6 +33,7 @@ import org.simantics.db.Resource; import org.simantics.db.Session; import org.simantics.db.WriteGraph; import org.simantics.db.common.procedure.adapter.TransientCacheListener; +import org.simantics.db.common.procedure.guarded.GuardedAsyncProcedureWrapper; import org.simantics.db.common.request.ResourceRead; import org.simantics.db.common.request.TernaryRead; import org.simantics.db.common.request.WriteRequest; @@ -103,6 +104,14 @@ public class FlagClassFactory extends SyncElementFactory { procedure.execute(graph, createFlagClass(DIA.Flag, DIA.Flag_Terminal)); } + @Override + public void load(AsyncReadGraph graph, final ICanvasContext canvas, final IDiagram diagram, + final Resource elementResource, final IElement element, final AsyncProcedure procedure) { + GuardedAsyncProcedureWrapper guard = new GuardedAsyncProcedureWrapper(procedure, 2); + super.load(graph, canvas, diagram, elementResource, element, guard); + ElementFactoryUtil.loadLayersForElement(graph, diagram, element, elementResource, guard); + } + @Override public void load(ReadGraph g, ICanvasContext canvas, IDiagram diagram, Resource flag, IElement e) throws DatabaseException { Layer0 l0 = g.getService(Layer0.class); @@ -184,7 +193,7 @@ public class FlagClassFactory extends SyncElementFactory { if (ftr != null) { IFlagType ft = ftr.read(g, flag, modelingRules); - FlagInfo info = ft.getInfo(g); + FlagInfo info = ft.getInfo(g, canvas); Shape shape = info.getShape(); if (shape != null) {