]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/src/org/simantics/diagram/profile/MonitorTextGridResult.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / profile / MonitorTextGridResult.java
diff --git a/bundles/org.simantics.diagram/src/org/simantics/diagram/profile/MonitorTextGridResult.java b/bundles/org.simantics.diagram/src/org/simantics/diagram/profile/MonitorTextGridResult.java
new file mode 100644 (file)
index 0000000..f0032a2
--- /dev/null
@@ -0,0 +1,158 @@
+package org.simantics.diagram.profile;\r
+\r
+import java.awt.geom.AffineTransform;\r
+import java.util.Arrays;\r
+\r
+import org.simantics.common.color.Color;\r
+import org.simantics.common.format.Formatter;\r
+import org.simantics.databoard.Bindings;\r
+import org.simantics.databoard.binding.Binding;\r
+import org.simantics.databoard.util.Bean;\r
+import org.simantics.databoard.util.ObjectUtils;\r
+import org.simantics.datatypes.literal.Vec2d;\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.db.layer0.variable.RVI;\r
+import org.simantics.db.layer0.variable.Variable;\r
+import org.simantics.diagram.synchronization.graph.DiagramGraphUtil;\r
+import org.simantics.g2d.utils.Alignment;\r
+import org.simantics.scl.runtime.function.Function1;\r
+import org.simantics.utils.datastructures.map.Tuple;\r
+\r
+public class MonitorTextGridResult extends Tuple {\r
+       \r
+    public static class B extends Bean {\r
+       private static final Binding BINDING = Bindings.getBindingUnchecked(B.class);\r
+       public int index;\r
+       public double gain;\r
+       public double bias;\r
+       public B(int index, double gain, double bias) {\r
+               super(BINDING);\r
+               this.index = index;\r
+               this.gain = gain;\r
+               this.bias = bias;\r
+       }\r
+    }\r
+       \r
+    public MonitorTextGridResult(String rowId, String text1, String text2, String text3, boolean enabled, boolean up, double spacing, Function1<String, String> modifier, Function1<String, String> validator, Function1<Vec2d, Boolean> translator, AffineTransform parentTransform) {\r
+        super(rowId, text1, text2, text3, enabled, up, spacing, modifier, validator, translator, parentTransform, null, null, null, null, null, null, null, null);\r
+    }\r
+    public MonitorTextGridResult(String rowId, String text1, String text2, String text3, boolean enabled, boolean up, double spacing, Function1<String, String> modifier, Function1<String, String> validator, Function1<Vec2d, Boolean> translator, AffineTransform parentTransform, Vec2d offset) {\r
+        super(rowId, text1, text2, text3, enabled, up, spacing, modifier, validator, translator, parentTransform, offset, null, null, null, null, null, null, null);\r
+    }\r
+    public MonitorTextGridResult(String rowId, String text1, String text2, String text3, boolean enabled, boolean up, double spacing, Function1<String, String> modifier, Function1<String, String> validator, Function1<Vec2d, Boolean> translator, AffineTransform parentTransform, Vec2d offset, Color color) {\r
+        super(rowId, text1, text2, text3, enabled, up, spacing, modifier, validator, translator, parentTransform, offset, color, null, null, null, null, null, null);\r
+    }\r
+    public MonitorTextGridResult(String rowId, String text1, String text2, String text3, boolean enabled, boolean up, double spacing, Function1<String, String> modifier, Function1<String, String> validator, Function1<Vec2d, Boolean> translator, AffineTransform parentTransform, Vec2d offset, Color color, RVI rvi) {\r
+        super(rowId, text1, text2, text3, enabled, up, spacing, modifier, validator, translator, parentTransform, offset, color, rvi, null, null, null, null, null);\r
+    }\r
+    public MonitorTextGridResult(String rowId, String text1, String text2, String text3, boolean enabled, boolean up, double spacing, Function1<String, String> modifier, Function1<String, String> validator, Function1<Vec2d, Boolean> translator, AffineTransform parentTransform, Vec2d offset, Color color, RVI rvi, Variable property, Formatter formatter, B b) {\r
+        super(rowId, text1, text2, text3, enabled, up, spacing, modifier, validator, translator, parentTransform, offset, color, rvi, property, formatter, b, null, null);\r
+    }\r
+    public MonitorTextGridResult(String rowId, String text1, String text2, String text3, boolean enabled, boolean up, double spacing, Function1<String, String> modifier, Function1<String, String> validator, Function1<Vec2d, Boolean> translator, AffineTransform parentTransform, Vec2d offset, Color color, RVI rvi, Variable property, Formatter formatter, B b, Alignment[] alignment, Alignment[] verticalAlignment) {\r
+        super(rowId, text1, text2, text3, enabled, up, spacing, modifier, validator, translator, parentTransform, offset, color, rvi, property, formatter, b, alignment, verticalAlignment);\r
+    }\r
+    private MonitorTextGridResult(Object ... fields) {\r
+        super(fields);\r
+    }\r
+    public String getRowId() {\r
+        return (String) getField(0);\r
+    }\r
+    public String getText1() {\r
+        return (String) getField(1);\r
+    }\r
+    public String getText2() {\r
+        return (String) getField(2);\r
+    }\r
+    public String getText3() {\r
+        return (String) getField(3);\r
+    }\r
+    public Boolean getEnabled() {\r
+        return (Boolean) getField(4);\r
+    }\r
+    public Boolean getUp() {\r
+        return (Boolean) getField(5);\r
+    }\r
+    public Double getSpacing() {\r
+        return (Double) getField(6);\r
+    }\r
+    @SuppressWarnings("unchecked")\r
+    public Function1<String, String> getModifier() {\r
+        return (Function1<String, String>) getField(7);\r
+    }\r
+    @SuppressWarnings("unchecked")\r
+    public Function1<String, String> getValidator() {\r
+        return (Function1<String, String>) getField(8);\r
+    }\r
+    @SuppressWarnings("unchecked")\r
+    public Function1<Vec2d, Boolean> getTranslator() {\r
+        return (Function1<Vec2d, Boolean>) getField(9);\r
+    }\r
+    public AffineTransform getParentTransform() {\r
+        return (AffineTransform) getField(10);\r
+    }\r
+    public Vec2d getOffset() {\r
+        return (Vec2d) getField(11);\r
+    }\r
+    public Color getColor() {\r
+        return (Color) getField(12);\r
+    }\r
+    public RVI getRVI() {\r
+        return (RVI) getField(13);\r
+    }\r
+    public Variable getProperty() {\r
+        return (Variable) getField(14);\r
+    }\r
+    public Formatter getFormatter() {\r
+        return (Formatter) getField(15);\r
+    }\r
+    public B getB() {\r
+        return (B) getField(16);\r
+    }\r
+    public Alignment[] getAlignments() {\r
+        return (Alignment[]) getField(17);\r
+    }\r
+    public Alignment[] getVerticalAlignments() {\r
+        return (Alignment[]) getField(18);\r
+    }\r
+    public boolean getPending() {\r
+        Boolean b = tryGetTypedField(19);\r
+        return b != null && Boolean.TRUE.equals(b);\r
+    }\r
+    public Object getUnformattedValue() {\r
+        return tryGetField(20);\r
+    }\r
+    public boolean sameStructure(MonitorTextGridResult other) {\r
+       Object[] fields = getFields();\r
+       Object[] otherFields = other.getFields();\r
+       int level = getLevel();\r
+       if (fields.length != otherFields.length)\r
+           return false;\r
+       for(int i=0;i<2;i++) if(!ObjectUtils.objectEquals(fields[i],otherFields[i])) return false;\r
+       for(int i=3;i<level;i++) if(!ObjectUtils.objectEquals(fields[i],otherFields[i])) return false;\r
+       return true;\r
+    }\r
+    \r
+    public MonitorTextGridResult withValue(Object unformattedValue, String value) {\r
+        return withValue(unformattedValue, value, false);\r
+    }\r
+\r
+    public MonitorTextGridResult withValue(Object unformattedValue, String value, boolean pending) {\r
+        boolean hasValue = unformattedValue != null;\r
+        Object[] fs = Arrays.copyOf(getFields(), hasValue ? 21 : 20, Object[].class);\r
+        fs[2] = value;\r
+        fs[19] = pending;\r
+        if (hasValue)\r
+            fs[20] = unformattedValue;\r
+        return new MonitorTextGridResult(fs);\r
+    }\r
+\r
+    public static MonitorTextGridResult make(ReadGraph graph, Resource element, int index, String id, String label, String value, String unit) throws DatabaseException {\r
+               AffineTransform transform = DiagramGraphUtil.getAffineTransform(graph, element);\r
+               Vec2d offset = DiagramGraphUtil.getOffset(graph, element);\r
+               MonitorTextGridResult.B b = new MonitorTextGridResult.B(index, 1.0, 0.0);\r
+       return new MonitorTextGridResult(id, label, value, unit, true, true, 0.0, null, null, null, transform, offset, null, null, null, null, b, null, null);\r
+    }\r
+    \r
+}
\ No newline at end of file