Better support for ontological profiles
[simantics/platform.git] / bundles / org.simantics.diagram.ontology / graph / DiagramProfiles.pgraph
1 L0 = <http://www.simantics.org/Layer0-1.1>
2 L0X = <http://www.simantics.org/Layer0X-1.1>
3 DIA = <http://www.simantics.org/Diagram-2.2>
4
5 //// PROFILES
6
7 DIA.Profile <T L0.List
8   >-- DIA.Profile.priority --> L0.Double <R L0.HasProperty : L0.FunctionalRelation
9   >-- DIA.Profile.children ==> "[Resource]" <R L0.HasProperty : L0.FunctionalRelation
10   @L0.assert DIA.Profile.priority 0.0
11   @L0.assert DIA.Profile.children DIA.Profile.Functions.profileChildren
12
13 DIA.Profile.Functions : L0.Library
14
15 DIA.Profile.Functions.singleResourceSelection : L0.Function
16     L0.HasValueType "a"
17 DIA.Profile.Functions.profileChildren : L0.Function
18     L0.HasValueType "[Resource]"
19 DIA.Profile.Functions.availableProfiles : L0.Function
20     L0.HasValueType "[(String, Resource)]"
21 DIA.Profile.Functions.selectedProfile : L0.Function
22     L0.HasValueType "String"
23 DIA.Profile.Functions.activeProfileModifier : L0.Function
24     L0.HasValueType "String -> String"
25 DIA.Profile.Functions.profileEntrySelected : L0.Function
26     L0.HasValueType "a -> Boolean"
27
28 DIA.ProfileEntry <T L0.Entity
29     @L0.property DIA.ProfileEntry.HasStyle
30     @L0.property DIA.ProfileEntry.HasGroup
31     @L0.assert DIA.ProfileEntry.HasPriority 0.0
32
33 DIA.ProfileEntry.HasGroup <R L0.DependsOn : L0.FunctionalRelation
34 DIA.ProfileEntry.HasStyle <R L0.DependsOn : L0.FunctionalRelation
35 DIA.ProfileEntry.HasPriority <R L0.HasProperty : L0.FunctionalRelation
36
37 DIA.GroupStyleProfileEntry <T DIA.ProfileEntry
38
39 DIA.groupStyleProfileEntry : L0.Template
40     @template %subject %style %group
41         %subject : DIA.GroupStyleProfileEntry
42             DIA.ProfileEntry.HasStyle %style
43             DIA.ProfileEntry.HasGroup %group
44
45 DIA.Group <T L0.Entity
46
47 DIA.TypeGroup <T DIA.Group
48     >-- DIA.TypeGroup.HasType --> L0.Type <R L0.DependsOn 
49
50 DIA.MappedTypeGroup <T DIA.TypeGroup
51     @L0.property DIA.TypeGroup.HasType
52
53 DIA.SCLGroup <T DIA.Group
54
55 DIA.SingleSelectionGroup <T DIA.Group
56
57 DIA.Style <T L0.Entity
58
59 DIA.ConstantStyle <T DIA.Style
60
61 DIA.ExpressionStyle <T DIA.Style
62
63 DIA.SCLTextGridStyle <T DIA.Style
64   >-- DIA.SCLTextGridStyle.function ==> "Variable -> <ReadGraph> String" <R L0.HasProperty : L0.TotalFunction
65
66 DIA.SCLTextStyle <T DIA.Style
67 DIA.BasicExpressionTextStyle <T DIA.Style
68
69 // Deprecated
70 DIA.HasProfile : L0.Entity
71 DIA.HasProfile.Inverse : L0.Entity
72
73 DIA.HasEntries <R L0.DependsOn
74
75 DIA.HasActivationContext <R L0.DependsOn
76
77 DIA.HasValues <R L0.HasProperty : L0.FunctionalRelation
78     L0.InverseOf DIA.ValuesOf
79
80 DIA.HasVariableName <R L0.HasProperty : L0.FunctionalRelation
81
82 DIA.HasActiveProfile <R L0.DependsOn : L0.FunctionalRelation
83 DIA.RuntimeDiagram
84     @L0.optionalProperty DIA.HasActiveProfile
85     
86 DIA.Profile.defaultEnabled
87   @L0.defTag
88
89 DIA.ProfileActivationState <T L0.Entity
90   >-- DIA.ProfileActivationState.HasProfile --> DIA.Profile <R L0.IsRelatedTo
91   
92 DIA.ConfigurableProfile <T L0.Entity
93
94 DIA.HasTemplate <R L0.ConsistsOf
95    L0.HasDomain DIA.ProfileEntry
96    L0.HasRange DIA.ProfileEntry
97
98 DIA.Groups : L0.Library
99
100 DIA.Groups.DefinedElementGroup : DIA.TypeGroup
101   DIA.TypeGroup.HasType DIA.DefinedElement
102
103 DIA.Groups.RouteGraphConnectionElementGroup : DIA.TypeGroup
104   DIA.TypeGroup.HasType DIA.RouteGraphConnection