X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.diagram%2Fsrc%2Forg%2Fsimantics%2Fdiagram%2Fprofile%2FSCLTextGridStyle.java;h=16b205388733c0ba5f3d86fea0b22b6781632012;hp=5850ffb3778407b39805c439d31fabde2b2b22ab;hb=ab9fcfe016ef75da40eb00a46d4a54b50e534511;hpb=11532e91770beadd55d85037c4b5e00bbcace69f diff --git a/bundles/org.simantics.diagram/src/org/simantics/diagram/profile/SCLTextGridStyle.java b/bundles/org.simantics.diagram/src/org/simantics/diagram/profile/SCLTextGridStyle.java index 5850ffb37..16b205388 100644 --- a/bundles/org.simantics.diagram/src/org/simantics/diagram/profile/SCLTextGridStyle.java +++ b/bundles/org.simantics.diagram/src/org/simantics/diagram/profile/SCLTextGridStyle.java @@ -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; /** @@ -25,10 +25,24 @@ import org.simantics.utils.datastructures.Pair; */ public class SCLTextGridStyle extends TextGridStyle { - final Resource style; + final Font font; + + public SCLTextGridStyle(ReadGraph graph, Resource style) throws DatabaseException { + super(style); + G2DResource G2D = G2DResource.getInstance(graph); + Resource fontR = graph.getPossibleObject(style, G2D.HasFont); + if(fontR != null) { + font = G2DUtils.getFont(graph, fontR); + } else { + font = null; + } - public SCLTextGridStyle(Resource style) { - this.style = style; + } + + @Override + protected Font getFont() { + if(font != null) return font; + return super.getFont(); } @Override @@ -38,7 +52,7 @@ public class SCLTextGridStyle extends TextGridStyle { @Override protected Object getIdentity(Resource entry) { - return new Pair(style, entry); + return new Pair(getResource(), entry); } @Override @@ -66,23 +80,23 @@ public class SCLTextGridStyle extends TextGridStyle { if (moduleVariable == null) return null; - Variable styleVariable = Variables.getVariable(graph, style); - Function1 function = styleVariable.getPossiblePropertyValue(graph, "function"); - String result = Simantics.applySCLRead(graph, function, moduleVariable); - + Variable styleVariable = Variables.getVariable(graph, getResource()); + Function1 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); } @Override public String getNodeName() { - return "" + style.getResourceId(); + return "" + getResource().getResourceId(); } }