]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 package org.simantics.diagram.profile;\r
2 \r
3 import java.awt.geom.AffineTransform;\r
4 import java.util.Arrays;\r
5 \r
6 import org.simantics.common.color.Color;\r
7 import org.simantics.common.format.Formatter;\r
8 import org.simantics.databoard.Bindings;\r
9 import org.simantics.databoard.binding.Binding;\r
10 import org.simantics.databoard.util.Bean;\r
11 import org.simantics.databoard.util.ObjectUtils;\r
12 import org.simantics.datatypes.literal.Vec2d;\r
13 import org.simantics.db.ReadGraph;\r
14 import org.simantics.db.Resource;\r
15 import org.simantics.db.exception.DatabaseException;\r
16 import org.simantics.db.layer0.variable.RVI;\r
17 import org.simantics.db.layer0.variable.Variable;\r
18 import org.simantics.diagram.synchronization.graph.DiagramGraphUtil;\r
19 import org.simantics.g2d.utils.Alignment;\r
20 import org.simantics.scl.runtime.function.Function1;\r
21 import org.simantics.utils.datastructures.map.Tuple;\r
22 \r
23 public class MonitorTextGridResult extends Tuple {\r
24         \r
25     public static class B extends Bean {\r
26         private static final Binding BINDING = Bindings.getBindingUnchecked(B.class);\r
27         public int index;\r
28         public double gain;\r
29         public double bias;\r
30         public B(int index, double gain, double bias) {\r
31                 super(BINDING);\r
32                 this.index = index;\r
33                 this.gain = gain;\r
34                 this.bias = bias;\r
35         }\r
36     }\r
37         \r
38     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
39         super(rowId, text1, text2, text3, enabled, up, spacing, modifier, validator, translator, parentTransform, null, null, null, null, null, null, null, null);\r
40     }\r
41     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
42         super(rowId, text1, text2, text3, enabled, up, spacing, modifier, validator, translator, parentTransform, offset, null, null, null, null, null, null, null);\r
43     }\r
44     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
45         super(rowId, text1, text2, text3, enabled, up, spacing, modifier, validator, translator, parentTransform, offset, color, null, null, null, null, null, null);\r
46     }\r
47     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
48         super(rowId, text1, text2, text3, enabled, up, spacing, modifier, validator, translator, parentTransform, offset, color, rvi, null, null, null, null, null);\r
49     }\r
50     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
51         super(rowId, text1, text2, text3, enabled, up, spacing, modifier, validator, translator, parentTransform, offset, color, rvi, property, formatter, b, null, null);\r
52     }\r
53     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
54         super(rowId, text1, text2, text3, enabled, up, spacing, modifier, validator, translator, parentTransform, offset, color, rvi, property, formatter, b, alignment, verticalAlignment);\r
55     }\r
56     private MonitorTextGridResult(Object ... fields) {\r
57         super(fields);\r
58     }\r
59     public String getRowId() {\r
60         return (String) getField(0);\r
61     }\r
62     public String getText1() {\r
63         return (String) getField(1);\r
64     }\r
65     public String getText2() {\r
66         return (String) getField(2);\r
67     }\r
68     public String getText3() {\r
69         return (String) getField(3);\r
70     }\r
71     public Boolean getEnabled() {\r
72         return (Boolean) getField(4);\r
73     }\r
74     public Boolean getUp() {\r
75         return (Boolean) getField(5);\r
76     }\r
77     public Double getSpacing() {\r
78         return (Double) getField(6);\r
79     }\r
80     @SuppressWarnings("unchecked")\r
81     public Function1<String, String> getModifier() {\r
82         return (Function1<String, String>) getField(7);\r
83     }\r
84     @SuppressWarnings("unchecked")\r
85     public Function1<String, String> getValidator() {\r
86         return (Function1<String, String>) getField(8);\r
87     }\r
88     @SuppressWarnings("unchecked")\r
89     public Function1<Vec2d, Boolean> getTranslator() {\r
90         return (Function1<Vec2d, Boolean>) getField(9);\r
91     }\r
92     public AffineTransform getParentTransform() {\r
93         return (AffineTransform) getField(10);\r
94     }\r
95     public Vec2d getOffset() {\r
96         return (Vec2d) getField(11);\r
97     }\r
98     public Color getColor() {\r
99         return (Color) getField(12);\r
100     }\r
101     public RVI getRVI() {\r
102         return (RVI) getField(13);\r
103     }\r
104     public Variable getProperty() {\r
105         return (Variable) getField(14);\r
106     }\r
107     public Formatter getFormatter() {\r
108         return (Formatter) getField(15);\r
109     }\r
110     public B getB() {\r
111         return (B) getField(16);\r
112     }\r
113     public Alignment[] getAlignments() {\r
114         return (Alignment[]) getField(17);\r
115     }\r
116     public Alignment[] getVerticalAlignments() {\r
117         return (Alignment[]) getField(18);\r
118     }\r
119     public boolean getPending() {\r
120         Boolean b = tryGetTypedField(19);\r
121         return b != null && Boolean.TRUE.equals(b);\r
122     }\r
123     public Object getUnformattedValue() {\r
124         return tryGetField(20);\r
125     }\r
126     public boolean sameStructure(MonitorTextGridResult other) {\r
127         Object[] fields = getFields();\r
128         Object[] otherFields = other.getFields();\r
129         int level = getLevel();\r
130         if (fields.length != otherFields.length)\r
131             return false;\r
132         for(int i=0;i<2;i++) if(!ObjectUtils.objectEquals(fields[i],otherFields[i])) return false;\r
133         for(int i=3;i<level;i++) if(!ObjectUtils.objectEquals(fields[i],otherFields[i])) return false;\r
134         return true;\r
135     }\r
136     \r
137     public MonitorTextGridResult withValue(Object unformattedValue, String value) {\r
138         return withValue(unformattedValue, value, false);\r
139     }\r
140 \r
141     public MonitorTextGridResult withValue(Object unformattedValue, String value, boolean pending) {\r
142         boolean hasValue = unformattedValue != null;\r
143         Object[] fs = Arrays.copyOf(getFields(), hasValue ? 21 : 20, Object[].class);\r
144         fs[2] = value;\r
145         fs[19] = pending;\r
146         if (hasValue)\r
147             fs[20] = unformattedValue;\r
148         return new MonitorTextGridResult(fs);\r
149     }\r
150 \r
151     public static MonitorTextGridResult make(ReadGraph graph, Resource element, int index, String id, String label, String value, String unit) throws DatabaseException {\r
152                 AffineTransform transform = DiagramGraphUtil.getAffineTransform(graph, element);\r
153                 Vec2d offset = DiagramGraphUtil.getOffset(graph, element);\r
154                 MonitorTextGridResult.B b = new MonitorTextGridResult.B(index, 1.0, 0.0);\r
155         return new MonitorTextGridResult(id, label, value, unit, true, true, 0.0, null, null, null, transform, offset, null, null, null, null, b, null, null);\r
156     }\r
157     \r
158 }