]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/src/org/simantics/diagram/adapter/FlagClassFactory.java
Configurable prefix and suffix text for monitors
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / adapter / FlagClassFactory.java
index d0a44984d5bd63a2ad27be6e94c3afa6f95484cb..94acc5116451a805d3e67cbf42f21809e47a9a46 100644 (file)
@@ -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<IElement> procedure) {
+        GuardedAsyncProcedureWrapper<IElement> guard = new GuardedAsyncProcedureWrapper<IElement>(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());