]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.document.base.ontology/graph/Components.pgraph
Fixed broken validation of document SCL Handler expressions
[simantics/platform.git] / bundles / org.simantics.document.base.ontology / graph / Components.pgraph
1 L0 = <http://www.simantics.org/Layer0-1.1>
2 STR = <http://www.simantics.org/Structural-1.2>
3 DOC = <http://www.simantics.org/Documentation-1.2>
4 RELATIONS = <http://www.simantics.org/Documentation-1.2/Relations>
5 PROPERTIES = <http://www.simantics.org/Documentation-1.2/Properties>
6 FUNCTIONS = <http://www.simantics.org/Documentation-1.2/Functions>
7
8 COMPONENTS = DOC.Components : L0.Library
9
10 attribute = COMPONENTS.attribute : L0.Template
11     @template %subject %relation %default
12         %subject
13             >-- %relation
14             L0.Asserts _ : L0.Assertion
15                 L0.HasPredicate %relation
16                 L0.HasObject %default
17
18 connectionPoint = COMPONENTS.connectionPoint : L0.Template
19     @template %subject %relation
20         %subject
21             >-- %relation    
22
23 sclAttribute = COMPONENTS.sclAttribute : L0.Template
24     @template %subject %relation %command %valueType
25         %subject
26             >-- %relation
27             L0.Asserts _ : L0.Assertion
28                 L0.HasPredicate %relation
29                 L0.HasObject _ : DOC.SCLValue
30                   L0.HasValueType %valueType
31                   L0.SCLValue.expression %command
32                   L0.default false
33
34 DOC.SCL : L0.SCLModule
35     L0.SCLModule.definition _ : L0.String
36         @L0.loadString "scl/Code.scl"
37
38 DOC.scl : L0.Template
39     @template %subject %property %expression %valueType
40         %subject
41             %property _ : DOC.SCLValue
42               L0.SCLValue.expression %expression
43               L0.HasValueType %valueType
44
45 DOC.sclValue : L0.Template
46     @template %subject %expression %valueType
47         %subject : DOC.SCLValue
48             L0.SCLValue.expression %expression
49             L0.HasValueType %valueType
50
51 DOC.SCLValue <T L0.SCLValue
52   @L0.scl L0.SCLValueType.validator """\self -> compileDocumentSCLValueExpression self""" "Variable -> <ReadGraph> String"
53   @L0.assert L0.ConvertsToValueWith
54     DOC.Functions.sclValue : L0.ExternalValue
55
56 DOC.HandlerSCLValue <T L0.SCLValue
57   @L0.scl L0.SCLValueType.validator """\self -> compileSimupediaSCLHandlerValueExpression self""" "Variable -> <ReadGraph> String"
58   @L0.assert L0.ConvertsToValueWith
59     DOC.Functions.sclHandlerValue : L0.ExternalValue
60
61 /* Basic component types */
62 COMPONENTS.Component <T STR.Component
63     >-- COMPONENTS.Component.manualOrdinal --> L0.Integer <R L0.HasProperty
64     @attribute PROPERTIES.input FUNCTIONS.input
65     @attribute PROPERTIES.session FUNCTIONS.session
66     @attribute PROPERTIES.state FUNCTIONS.state
67     @attribute PROPERTIES.icstate FUNCTIONS.icstate
68     @sclAttribute PROPERTIES.commands "commandList self" "[Command]"
69
70 COMPONENTS.PrimitiveComponent <T COMPONENTS.Component
71     @L0.sclAssertion PROPERTIES.primitiveProperties "primitiveProperties" "DocumentProperties"
72
73 COMPONENTS.ParentlessComponent <T COMPONENTS.PrimitiveComponent /* Component without a parent, e.g. Root, DialogBox */
74
75 COMPONENTS.Composite <T STR.Composite <T COMPONENTS.Component
76
77 COMPONENTS.DummyContainer <T COMPONENTS.Component /* Dummy single component container which is not instantiated */
78     @attribute PROPERTIES.exists true
79     @attribute PROPERTIES.pathExists FUNCTIONS.pathExists
80
81 /* Root */
82 COMPONENTS.Root <T COMPONENTS.ParentlessComponent   
83     @connectionPoint RELATIONS.part1
84
85 COMPONENTS.Event <T COMPONENTS.ParentlessComponent
86     @connectionPoint RELATIONS.event
87  
88 COMPONENTS.CommandEvent <T COMPONENTS.Event
89    @connectionPoint RELATIONS.data1
90    @sclAttribute PROPERTIES.dataDefinitions "computeDataDefinitions self" "[DataDefinition]"
91    @sclAttribute PROPERTIES.SCLFunction "emptyOnClick ()" "String"
92
93 DOC.commandEvent : L0.Template
94     @template %instance %expression %valueType
95         %instance : COMPONENTS.CommandEvent
96             PROPERTIES.SCLFunction _ : %valueType
97                 L0.HasValueType "AbstractEventHandler"
98                 L0.SCLValue.expression %expression
99
100 COMPONENTS.DefVar <T COMPONENTS.ParentlessComponent
101    @connectionPoint RELATIONS.dataDefinition
102    @connectionPoint RELATIONS.dataIn
103    @attribute PROPERTIES.target ""
104    @attribute PROPERTIES.source ""
105    
106 COMPONENTS.DefVars <T COMPONENTS.ParentlessComponent
107    @connectionPoint RELATIONS.dataDefinition
108    @connectionPoint RELATIONS.dataIn
109    @attribute PROPERTIES.targets 
110      [] : L0.StringArray
111    @attribute PROPERTIES.sources
112      [] : L0.StringArray