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