]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/src/org/simantics/diagram/profile/SCLTextGridStyle.java
Better support for ontological profiles
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / profile / SCLTextGridStyle.java
index 5850ffb3778407b39805c439d31fabde2b2b22ab..4401f2213c51aa0a58b0b0c8170ab5e9636d281c 100644 (file)
@@ -1,12 +1,9 @@
 package org.simantics.diagram.profile;
 
+import java.awt.Font;
 import java.awt.geom.AffineTransform;
-import java.text.DecimalFormat;
-import java.text.DecimalFormatSymbols;
-import java.util.Locale;
 
 import org.simantics.Simantics;
-import org.simantics.common.format.Formatter;
 import org.simantics.databoard.Bindings;
 import org.simantics.datatypes.literal.Vec2d;
 import org.simantics.db.ReadGraph;
@@ -14,10 +11,13 @@ import org.simantics.db.Resource;
 import org.simantics.db.exception.DatabaseException;
 import org.simantics.db.layer0.variable.Variable;
 import org.simantics.db.layer0.variable.Variables;
+import org.simantics.diagram.G2DUtils;
 import org.simantics.diagram.stubs.DiagramResource;
+import org.simantics.diagram.stubs.G2DResource;
 import org.simantics.diagram.synchronization.graph.DiagramGraphUtil;
 import org.simantics.modeling.ModelingResources;
 import org.simantics.scl.runtime.function.Function1;
+import org.simantics.scl.runtime.tuple.Tuple3;
 import org.simantics.utils.datastructures.Pair;
 
 /**
@@ -26,9 +26,24 @@ import org.simantics.utils.datastructures.Pair;
 public class SCLTextGridStyle extends TextGridStyle {
 
        final Resource style;
+       final Font font;
 
-       public SCLTextGridStyle(Resource style) {
+       public SCLTextGridStyle(ReadGraph graph, Resource style) throws DatabaseException {
                this.style = style;
+               G2DResource G2D = G2DResource.getInstance(graph);
+        Resource fontR = graph.getPossibleObject(style, G2D.HasFont);
+               if(fontR != null) {
+                       font = G2DUtils.getFont(graph, fontR);
+               } else {
+                       font = null;
+               }
+
+       }
+
+       @Override
+       protected Font getFont() {
+               if(font != null) return font;
+               return super.getFont();
        }
 
        @Override
@@ -67,16 +82,16 @@ public class SCLTextGridStyle extends TextGridStyle {
                        return null;
 
                Variable styleVariable = Variables.getVariable(graph, style);
-               Function1<Variable,String> function = styleVariable.getPossiblePropertyValue(graph, "function");
-               String result = Simantics.applySCLRead(graph, function, moduleVariable);
-
+               Function1<Variable,Tuple3> function = styleVariable.getPossiblePropertyValue(graph, DIA.SCLTextGridStyle_texts);
+               Tuple3 result = Simantics.applySCLRead(graph, function, moduleVariable);
+               
                AffineTransform transform = DiagramGraphUtil.getAffineTransform(graph, element);
                Vec2d offset = DiagramGraphUtil.getOffset(graph, element);
                boolean enabled = !DiagramGraphUtil.getProfileMonitorsHidden(graph, element);
                boolean up = DiagramGraphUtil.getProfileMonitorsUp(graph, element);
                double spacing = DiagramGraphUtil.getProfileMonitorSpacing(graph, element);
 
-               return new MonitorTextGridResult(rowId(), result, "", "", enabled, up, spacing, null, null, ElementTranslation.function(element), transform, offset);
+               return new MonitorTextGridResult(rowId(), (String)result.c0, (String)result.c1, (String)result.c2, enabled, up, spacing, null, null, ElementTranslation.function(element), transform, offset);
 
        }