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=d0a44984d5bd63a2ad27be6e94c3afa6f95484cb;hpb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;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 d0a44984d..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 @@ -11,6 +11,7 @@ *******************************************************************************/ package org.simantics.diagram.adapter; +import java.awt.Font; import java.awt.Shape; import java.awt.geom.AffineTransform; import java.awt.geom.Rectangle2D; @@ -25,7 +26,6 @@ import java.util.regex.PatternSyntaxException; import org.simantics.databoard.Bindings; import org.simantics.databoard.binding.error.RuntimeBindingConstructionException; import org.simantics.databoard.util.Bean; -import org.simantics.datatypes.literal.Font; import org.simantics.datatypes.literal.RGB; import org.simantics.db.AsyncReadGraph; import org.simantics.db.ReadGraph; @@ -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) { @@ -203,6 +212,11 @@ public class FlagClassFactory extends SyncElementFactory { e.setHint(FlagClass.KEY_FLAG_TEXT, flagText); flagTextIsSet = true; } + + Font flagFont = info.getFont(); + if(flagFont != null) { + e.setHint(FlagClass.KEY_FLAG_FONT, flagFont); + } if (info.getTextArea() != null) { e.setHint(FlagClass.KEY_FLAG_TEXT_AREA, info.getTextArea());