]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.charts.ontology/graph/Chart.pgraph
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.charts.ontology / graph / Chart.pgraph
1 L0 = <http://www.simantics.org/Layer0-1.1>\r
2 L0X = <http://www.simantics.org/Layer0X-1.1>\r
3 G2D = <http://www.simantics.org/G2D-1.1>\r
4 DIA = <http://www.simantics.org/Diagram-2.2>\r
5 MOD = <http://www.simantics.org/Modeling-1.2>\r
6 SEL = <http://www.simantics.org/SelectionView-1.2>\r
7 \r
8 CHART = <http://www.simantics.org/Charts-1.2> : L0.Ontology\r
9     @L0.new\r
10     L0.HasResourceClass "org.simantics.charts.ontology.ChartResource"\r
11 \r
12 // -----------------------------------------------------------------------\r
13 // Charts\r
14 \r
15 CHART.Chart <T L0.Entity : MOD.TypeWithChangeInformation\r
16     L0.HasDescription "Abstract base type for all chart types."\r
17     @L0.tag L0.Abstract\r
18 \r
19 CHART.ChartGroup <T CHART.Chart : MOD.TypeWithChangeInformation\r
20     L0.HasDescription "A grouping of several charts. Intended to be viewed in a row."\r
21     @L0.property L0.ConsistsOf\r
22     //TODO: [L0.ConsistsOf all Chart]\r
23 \r
24 // -----------------------------------------------------------------------\r
25 // TimeSeriesChart and TrendSpec\r
26 \r
27 CHART.TimeSeriesChart <T CHART.Chart\r
28     L0.HasDescription "2D chart for viewing time series data."\r
29     @L0.singlePropertyDefault L0.HasName "Time Series Chart"\r
30     @L0.singlePropertyDefault CHART.Chart.YAxisMode CHART.YAxisMode.MultiAxis\r
31     @L0.singlePropertyDefault CHART.Chart.ShowMilestones true\r
32 //    @L0.singlePropertyDefault CHART.Chart.TimeFormat CHART.TimeFormat.Time\r
33     @L0.optionalProperty CHART.Chart.TimeWindowStart\r
34     @L0.optionalProperty CHART.Chart.TimeWindowLength\r
35     @L0.optionalProperty CHART.Chart.TimeWindowIncrement\r
36     @L0.assert CHART.Chart.TimeWindowStart\r
37         _ : CHART.ObtainedDouble\r
38     @L0.assert CHART.Chart.TimeWindowLength\r
39         _ : CHART.ObtainedDouble\r
40     @L0.assert CHART.Chart.TimeWindowIncrement\r
41         _ : CHART.ObtainedDouble\r
42     @L0.property L0.ConsistsOf\r
43     @L0.assert CHART.Chart.trackExperimentTime false\r
44     @L0.assert CHART.Chart.valueViewPosition\r
45         // Default value is top-right corner\r
46         [1.0, 0.0] : L0.DoubleArray\r
47     @L0.assert CHART.Chart.backgroundColor\r
48         [0.98, 0.98, 0.98, 0.8941, 0.8941, 0.9725] : L0.FloatArray\r
49     @L0.assert CHART.Chart.showGrid true\r
50     @L0.assert CHART.Chart.gridColor\r
51         [0.7451, 0.7451, 0.8627] : L0.FloatArray\r
52 \r
53 // Y-Axis Mode\r
54 CHART.Chart.YAxisMode <R L0.IsRelatedTo : L0.FunctionalRelation\r
55     L0.HasLabel "Axis Mode"\r
56     L0.HasRange CHART.YAxisMode\r
57 CHART.YAxisMode <T L0.Property\r
58     L0.HasDescription "Setting how Y-Axis is shown between plots"\r
59     @L0.tag L0.Enumeration\r
60 CHART.YAxisMode.SingleAxis : CHART.YAxisMode\r
61     L0.HasLabel "Single Axis"\r
62 CHART.YAxisMode.MultiAxis : CHART.YAxisMode\r
63     L0.HasLabel "Multi Axis"\r
64 \r
65 // Value Format (For Y-Axis)\r
66 //CHART.Chart.Item.ValueFormat <R L0.IsRelatedTo : L0.FunctionalRelation\r
67 //    L0.HasLabel "Value Format"\r
68 //    L0.HasRange CHART.ValueMode\r
69 //CHART.ValueFormat <T L0.Property\r
70 //    L0.HasDescription "Setting how the value is formatted in the Y-Axis"\r
71 //    @L0.property CHART.ValueFormat.Pattern\r
72 //    @L0.tag L0.Enumeration\r
73 //CHART.ValueFormat.Currency : CHART.ValueFormat\r
74 //    L0.HasLabel "Currency Format"\r
75 //    CHART.ValueFormat.Pattern "###,###.##############"\r
76 //CHART.ValueFormat.Engineering : CHART.ValueFormat\r
77 //    L0.HasLabel "Engineering Format"\r
78 //    CHART.ValueFormat.Pattern "##0.###E0"\r
79 //CHART.ValueFormat.Scientific : CHART.ValueFormat\r
80 //    L0.HasLabel "Scientific Format"\r
81 //    CHART.ValueFormat.Pattern "0.###E0"\r
82 //CHART.ValueFormat.Pattern <R L0.HasProperty\r
83 //    L0.HasLabel "Pattern"\r
84 //    L0.HasRange L0.String\r
85 \r
86 CHART.HasColor <R L0.HasProperty : L0.FunctionalRelation\r
87     L0.HasLabel "Color"\r
88     L0.HasRange L0.Integer\r
89 \r
90 // -----------------------------------------------------------------------\r
91 // ViewProfile\r
92 \r
93 CHART.Chart.ShowMilestones <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
94     L0.HasLabel "Show Milestones"\r
95     ==> "Boolean" --> L0.Boolean\r
96 \r
97 CHART.Chart.showGrid <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
98     L0.HasLabel "Show Grid"\r
99     ==> "Boolean" --> L0.Boolean\r
100 \r
101 CHART.Chart.TimeWindowStart <R L0.HasProperty : L0.FunctionalRelation\r
102     L0.HasLabel "Time Window Start"\r
103     ==> "Double"\r
104 CHART.Chart.TimeWindowLength <R L0.HasProperty : L0.FunctionalRelation\r
105     L0.HasLabel "Time Window Length"\r
106     ==> "Double"\r
107 CHART.Chart.TimeWindowIncrement <R L0.HasProperty : L0.FunctionalRelation\r
108     L0.HasDescription "Percent of how much window is grown once end is reached"\r
109     L0.HasLabel "Time Window Increment"\r
110     ==> "Double"\r
111 CHART.Chart.trackExperimentTime <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
112     L0.HasDescription "If true, chart hairline view shall track current experiment time."\r
113     L0.HasLabel "Track Experiment Time"\r
114     ==> "Boolean" --> L0.Boolean \r
115 CHART.Chart.valueViewPosition <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
116     L0.HasDescription "Relation position [x,y] of the momentary value view. The values of x and y are between 0 and 1 where 0 means the top/left and 1 bottom/right."\r
117     L0.HasLabel "Value View Position"\r
118     ==> "Vector Double" --> L0.DoubleArray \r
119 CHART.Chart.backgroundColor <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
120     L0.HasDescription "An array of (r,g,b) floating point triples to describe either a single color or a color gradient."\r
121     L0.HasLabel "Background Colors"\r
122     ==> "Vector Float" --> L0.FloatArray \r
123 CHART.Chart.gridColor <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
124     L0.HasDescription "An (r,g,b) floating point triple to describe a single color."\r
125     L0.HasLabel "Grid Color"\r
126     ==> "Vector Float" --> L0.FloatArray \r
127 \r
128 // -----------------------------------------------------------------------\r
129 // Chart.Item\r
130 CHART.Chart.Item <T L0.Entity : MOD.TypeWithChangeInformation\r
131     @L0.property CHART.Chart.Item.HasSubscriptionItem\r
132     @L0.singleProperty CHART.Chart.Item.Index\r
133     @L0.assert CHART.Chart.Item.Index 0\r
134     //@L0.assert L0.HasLabel ""\r
135     // Subscription UUID  \r
136     //@L0.singlePropertyDefault CHART.Chart.Item.LineMode CHART.LineMode.LinearInterpolation\r
137     @L0.singlePropertyDefault CHART.Chart.Item.DrawMode CHART.DrawMode.Line\r
138     @L0.singlePropertyDefault CHART.Chart.Item.Renderer CHART.Renderer.Analog\r
139     @L0.singlePropertyDefault CHART.Chart.Item.ScaleMode CHART.ScaleMode.AutoScale\r
140     //@L0.optionalProperty CHART.HasScale\r
141     //@L0.assert CHART.Hascale CHART.DefaultScale\r
142     @L0.singleProperty CHART.Chart.Item.ScaleMode.Min\r
143     @L0.assert CHART.Chart.Item.ScaleMode.Min 0.0\r
144     @L0.singleProperty CHART.Chart.Item.ScaleMode.Max\r
145     @L0.assert CHART.Chart.Item.ScaleMode.Max 120.0\r
146     @L0.singleProperty CHART.Chart.Item.Index\r
147     //@L0.assert CHART.Chart.Item.ValueFormat CHART.ValueFormat.Currency\r
148     //@L0.singleProperty CHART.Chart.Item.ValueFormat\r
149     @L0.assert L0.HasLabel \r
150       _ : L0.Value\r
151         L0.ConvertsToValueWith CHART.Functions.chartItemLabel\r
152         L0.readOnly true\r
153     >-- CHART.Chart.Item.subscriptionInfo ==> "String" --> L0.Value <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
154         L0.HasLabel "Subscription Info"\r
155     @L0.assert CHART.Chart.Item.subscriptionInfo\r
156       _ : L0.Value\r
157         L0.ConvertsToValueWith CHART.Functions.chartItemSubscriptionInfo\r
158         L0.readOnly true\r
159     >-- CHART.Chart.Item.hidden ==> "Boolean" --> L0.Boolean <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
160         L0.HasLabel "Hidden"\r
161         L0.HasDescription "Used for marking chart items hidden."\r
162     @L0.assert CHART.Chart.Item.hidden false\r
163     @L0.optionalProperty G2D.HasStrokeWidth\r
164     @L0.optionalProperty G2D.HasColor\r
165 \r
166 CHART.Chart.Item.HasSubscriptionItem <R L0.IsRelatedTo\r
167     --> MOD.Subscription.Item\r
168     L0.InverseOf CHART.Chart.Item.HasChartItem <R L0.IsWeaklyRelatedTo\r
169         --> CHART.Chart.Item\r
170 \r
171 CHART.Chart.Item.Index <R L0.HasProperty : L0.FunctionalRelation\r
172     L0.HasLabel "Position and color index"\r
173     --> L0.Integer\r
174 \r
175 \r
176 //CHART.DefaultScale = { min = 0, max = 120.0 } : CHART.DoubleRange\r
177 //CHART.Chart.Item.LineMode <R L0.IsRelatedTo : L0.FunctionalRelation\r
178 //    L0.HasLabel "Line Mode"\r
179 //    L0.HasRange CHART.LineMode\r
180 //CHART.LineMode <T L0.Property\r
181 //    L0.HasDescription "Describes how the plot line is drawn between the dots, i.e. the data samples."\r
182 //    @L0.tag L0.Enumeration\r
183 //CHART.LineMode.LinearInterpolation : CHART.LineMode\r
184 //    L0.HasLabel "Line"\r
185 //CHART.LineMode.StepWise : CHART.LineMode\r
186 //    L0.HasLabel "Step"\r
187 \r
188 CHART.Chart.Item.Renderer <R L0.IsRelatedTo: L0.FunctionalRelation\r
189     L0.HasLabel "Renderer"\r
190     L0.HasRange CHART.Renderer\r
191 CHART.Renderer <T L0.Property\r
192     L0.HasDescription "Describes the renderer to use for drawing the 2d plot."\r
193     @L0.tag L0.Enumeration\r
194 CHART.Renderer.Binary : CHART.Renderer\r
195     L0.HasLabel "Binary"\r
196 CHART.Renderer.Analog : CHART.Renderer\r
197     L0.HasLabel "Analog"\r
198 \r
199 // Scale Mode\r
200 CHART.Chart.Item.ScaleMode <R L0.IsRelatedTo : L0.FunctionalRelation\r
201     L0.HasLabel "Scale"\r
202     L0.HasRange CHART.ScaleMode\r
203 CHART.ScaleMode <T L0.Property\r
204     L0.HasDescription "The mode how a plot is scaled to the viewport."\r
205     @L0.tag L0.Enumeration\r
206 CHART.ScaleMode.ManualScale : CHART.ScaleMode\r
207     L0.HasLabel "Manual scale"\r
208     @L0.singlePropertyDefault CHART.Chart.Item.ScaleMode.Min 0.0\r
209     @L0.singlePropertyDefault CHART.Chart.Item.ScaleMode.Max 120.0\r
210 CHART.ScaleMode.AutoScale : CHART.ScaleMode\r
211     L0.HasLabel "Auto scale" // Fit all samples\r
212 \r
213 CHART.Chart.Item.ScaleMode.Min <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
214     L0.HasLabel "Manual Scale Min"\r
215     L0.HasRange L0.Double\r
216 CHART.Chart.Item.ScaleMode.Max <R L0.HasProperty : L0.FunctionalRelation : SEL.GenericParameterType\r
217     L0.HasLabel "Manual Scale Max"\r
218     L0.HasRange L0.Double\r
219 \r
220 \r
221 // Time Format\r
222 //CHART.Chart.TimeFormat <R L0.IsRelatedTo : L0.FunctionalRelation\r
223 //    L0.HasLabel "Time Format"\r
224 //    L0.HasRange CHART.TimeFormat\r
225 //CHART.TimeFormat <T L0.Property\r
226 //    L0.HasDescription "The format how time axis is printed."\r
227 //    @L0.tag L0.Enumeration\r
228 //CHART.TimeFormat.Time : CHART.TimeFormat\r
229 //    L0.HasLabel "Time HH:mm:ss.SSS"\r
230 //CHART.TimeFormat.Decimal : CHART.TimeFormat\r
231 //    L0.HasLabel "Decimal"\r
232 \r
233 /*\r
234 CHART.HasScale <R L0.HasProperty\r
235     L0.HasLabel "Scale Values"\r
236     L0.HasRange CHART.DoubleRange\r
237 CHART.DoubleRange <T L0.Literal\r
238     @L0.assert L0.HasDataType ${\r
239         min : Double,\r
240         max : Double\r
241     }\r
242 */\r
243 \r
244 CHART.Chart.Item.DrawMode <R L0.IsRelatedTo : L0.FunctionalRelation\r
245     L0.HasLabel "Draw Mode"\r
246     L0.HasRange CHART.DrawMode\r
247 CHART.DrawMode <T L0.Property\r
248     @L0.tag L0.Enumeration\r
249     \r
250 CHART.DrawMode.DeviationAndAverage : CHART.DrawMode\r
251     L0.HasLabel "Average and Deviation"\r
252 CHART.DrawMode.DeviationAndLine : CHART.DrawMode\r
253     L0.HasLabel "Line and Deviation"\r
254 CHART.DrawMode.DeviationAndSample : CHART.DrawMode\r
255     L0.HasLabel "Sample and Deviation"\r
256 CHART.DrawMode.Sample : CHART.DrawMode\r
257     L0.HasLabel "Sample"\r
258 CHART.DrawMode.Average : CHART.DrawMode\r
259     L0.HasLabel "Average"\r
260 CHART.DrawMode.Line : CHART.DrawMode\r
261     L0.HasLabel "Line"\r
262 CHART.DrawMode.Deviation : CHART.DrawMode\r
263     L0.HasLabel "Deviation"\r
264 //CHART.DrawMode.DeviationAndMedian : CHART.DrawMode\r
265 //    L0.HasLabel "Median and Deviation"\r
266 //CHART.DrawMode.Median : CHART.DrawMode\r
267 //    L0.HasLabel "Median"\r
268 \r
269 // -----------------------------------------------------------------------\r
270 //// USEFUL ?\r
271 \r
272 /*\r
273 CHART.HasTimeSegment <R L0.HasProperty : L0.FunctionalRelation\r
274     L0.HasRange CHART.TimeSegment\r
275 \r
276 CHART.TimeSegment <T L0.Entity\r
277     @L0.singleProperty CHART.HasStartTime\r
278     @L0.singleProperty CHART.HasEndTime\r
279 CHART.HasStartTime <R L0.HasProperty : L0.FunctionalRelation\r
280     L0.HasRange L0.Double\r
281 CHART.HasEndTime <R L0.HasProperty : L0.FunctionalRelation\r
282     L0.HasRange L0.Double \r
283 \r
284 CHART.HasTimePresentation <R L0.IsRelatedTo : L0.FunctionalRelation\r
285     L0.HasRange CHART.TimePresentation\r
286 CHART.TimePresentation <T L0.Property\r
287     L0.HasDescription "Setting how time is shown on UI"\r
288     @L0.tag L0.Enumeration\r
289 CHART.TimePresentation.Absolute : CHART.TimePresentation\r
290 CHART.TimePresentation.Relative : CHART.TimePresentation\r
291 \r
292 CHART.HasGridMode <R L0.HasProperty : L0.FunctionalRelation\r
293     L0.HasRange CHART.GridMode\r
294 CHART.GridMode <T L0.Property\r
295     L0.HasDescription "The mode how grid lines are drawn"\r
296     @L0.tag L0.Abstract\r
297 CHART.DisabledGrid <T CHART.GridMode\r
298 CHART.AdaptiveGrid <T CHART.GridMode\r
299     @L0.singleProperty CHART.HasSpacing\r
300 CHART.ManualGrid <T CHART.GridMode\r
301     @L0.singleProperty CHART.HasXLines\r
302     @L0.singleProperty CHART.HasYLines\r
303 CHART.HasXLines <R L0.HasProperty : L0.FunctionalRelation\r
304     L0.HasRange L0.Double\r
305 CHART.HasYLines <R L0.HasProperty : L0.FunctionalRelation\r
306     L0.HasRange L0.Double\r
307 CHART.HasSpacing <R L0.HasProperty : L0.FunctionalRelation\r
308     L0.HasRange L0.Double\r
309 */\r
310 \r
311 //---------------------------\r
312 // Templates\r
313 \r
314 CHART.ChartTemplate <T L0.Entity\r
315 CHART.HasDefaultChartTemplate <R L0.DependsOn : L0.FunctionalRelation\r
316 CHART.ObtainedDouble <T L0.Value\r
317 \r
318 //---------------------------\r
319 // Simple templates\r
320 \r
321 CHART.WholeHistoryChartTemplate : CHART.ChartTemplate\r
322   L0.HasLabel "Whole history"\r
323   CHART.Chart.TimeWindowIncrement 50.0\r
324 \r
325 CHART.Last60SecondsChartTemplate : CHART.ChartTemplate\r
326   L0.HasLabel "Last 60 seconds"\r
327   CHART.Chart.TimeWindowLength 60.0\r
328   CHART.Chart.TimeWindowIncrement 50.0\r
329 \r
330 CHART.Last10MinutesChartTemplate : CHART.ChartTemplate\r
331   L0.HasLabel "Last 10 minutes"\r
332   CHART.Chart.TimeWindowLength 600.0\r
333   CHART.Chart.TimeWindowIncrement 50.0\r
334 \r
335 \r
336 CHART.Functions : L0.Library\r
337 CHART.Functions.chartItemLabel : L0.ExternalValue\r
338 CHART.Functions.chartItemSubscriptionInfo : L0.ExternalValue\r