]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.modeling.template2d.ontology/graph/DrawingTemplateVP.pgraph
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.modeling.template2d.ontology / graph / DrawingTemplateVP.pgraph
index 23f71d4482cf2f22d32329c9dc2b435f0b5f025b..66d2b336c4250982310bb31c5ff2ae3005f69cf0 100644 (file)
-L0 = <http://www.simantics.org/Layer0-1.1>\r
-L0X = <http://www.simantics.org/Layer0X-1.1>\r
-STR = <http://www.simantics.org/Structural-1.2>\r
-DIA = <http://www.simantics.org/Diagram-2.2>\r
-MOD = <http://www.simantics.org/Modeling-1.2>\r
-TEMPLATE2D = <http://www.simantics.org/ModelingTemplate2d-1.0>\r
-IMAGE = <http://www.simantics.org/Image2-1.2>\r
-VP = <http://www.simantics.org/Viewpoint-1.2>\r
-PROJ = <http://www.simantics.org/Project-1.2>\r
-ACT = <http://www.simantics.org/Action-1.1>\r
-G2D = <http://www.simantics.org/G2D-1.1>\r
-SG = <http://www.simantics.org/Scenegraph-1.1>\r
-SEL = <http://www.simantics.org/SelectionView-1.2>\r
-SEL_UI = <http://www.simantics.org/SelectionViewUI-1.1>\r
-ANNO = <http://www.simantics.org/Annotation-1.0>\r
-\r
-DIAGRAM_TEMPLATE_BC = TEMPLATE2D.DiagramTemplateBC : VP.BrowseContext\r
-//    VP.BrowseContext.IsIncludedIn MOD.ModelingBrowseContext\r
-//    VP.BrowseContext.IsIncludedIn PROJ.ProjectBrowseContext\r
-\r
-\r
-TEMPLATE2D.BrowseNode <T L0.Entity\r
-TEMPLATE2D.DrawingTemplateLibraryUI <T TEMPLATE2D.BrowseNode\r
-TEMPLATE2D.DrawingTemplateUI <T TEMPLATE2D.BrowseNode <T L0.Library\r
-TEMPLATE2D.BorderUI <T TEMPLATE2D.BrowseNode\r
-TEMPLATE2D.TextTemplateUI <T TEMPLATE2D.BrowseNode\r
-TEMPLATE2D.FlagTableUI <T TEMPLATE2D.BrowseNode\r
-TEMPLATE2D.FlagTypeVisualUI <T TEMPLATE2D.BrowseNode\r
-TEMPLATE2D.FlagTypeVisual.FilterUI <T TEMPLATE2D.BrowseNode\r
-TEMPLATE2D.FlagTableUI.ColumnUI <T TEMPLATE2D.BrowseNode\r
-TEMPLATE2D.FlagTableUI.ColumnUI.DataUI <T TEMPLATE2D.BrowseNode\r
-TEMPLATE2D.FlagTableUI.ColumnUI.HeaderUI <T TEMPLATE2D.BrowseNode\r
-TEMPLATE2D.CompositeUI <T TEMPLATE2D.BrowseNode\r
-\r
-TEMPLATE2D.TemplateTabContribution : SEL.TypedVariableTabContribution\r
-    SEL.TypedVariableTabContribution.HasType SG.Node\r
-    SEL.VariableTabContribution.HasView SEL_UI.StandardProperties\r
-    SEL.VariableTabContribution.HasPriority 1\r
-    L0.HasLabel "Parameters"\r
-\r
-TEMPLATE2D.DiagramTemplateBC.ScenegraphChildren : VP.ChildRule\r
-    VP.RelationChildRule.HasRelation SG.Node.children\r
-\r
-DIAGRAM_TEMPLATE_BC\r
-    // Produces drawing template library/libraries under model\r
-    @VP.relationChildRule MOD.StructuralModel TEMPLATE2D.HasDrawingTemplateRoot TEMPLATE2D.BrowseNode\r
-\r
-    // Produces BrowseNode hierarchy through L0.ConsistsOf but leaves out\r
-    // CompositeUI instances. Those are contributed separately.\r
-    VP.BrowseContext.HasChildContribution _ : VP.ChildContribution\r
-        VP.ChildContribution.HasParentNodeType TEMPLATE2D.BrowseNode\r
-        VP.ChildContribution.HasChildNodeType  TEMPLATE2D.BrowseNode \r
-        VP.ChildContribution.HasRule           _ : VP.RelationChildRule\r
-            VP.RelationChildRule.HasRelation       L0.ConsistsOf\r
-            VP.RelationChildRule.HasTest           _ : VP.HasNegatedTest\r
-                VP.HasNegatedTest.HasTest              _ : VP.OrTest\r
-                    VP.OrTest.HasTest\r
-                        _ : VP.HasInstanceOfTest\r
-                            VP.HasInstanceOfTest.IsInstanceOf TEMPLATE2D.CompositeUI\r
-                        _ : VP.HasInstanceOfTest\r
-                            VP.HasInstanceOfTest.IsInstanceOf TEMPLATE2D.FlagTableUI\r
-\r
-    // Produce root-level VisualComposites under drawing template.\r
-    @VP.relationChildRule TEMPLATE2D.DrawingTemplateUI L0.ConsistsOf DIA.Scenegraph.Composite\r
-\r
-    // Produces filters under scene graph nodes in flag type visuals\r
-    @VP.relationChildRule SG.Node L0.ConsistsOf TEMPLATE2D.FlagTypeVisual.Filter\r
-\r
-    // Produces scene graph node hiearchy under DIA.Scenegraph.Composite instances\r
-    VP.BrowseContext.HasChildContribution _ : VP.ChildContribution\r
-        VP.ChildContribution.HasParentNodeType DIA.Scenegraph.Composite\r
-        VP.ChildContribution.HasChildNodeType  DIA.Scenegraph.Node\r
-        VP.ChildContribution.HasRule           TEMPLATE2D.DiagramTemplateBC.ScenegraphChildren\r
-\r
-    VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-        VP.VisualsContribution.HasNodeType DIA.Scenegraph.Composite\r
-        VP.VisualsContribution.HasRule VP.PassThruSorterRule\r
-\r
-    VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-        VP.VisualsContribution.HasNodeType TEMPLATE2D.CompositeUI\r
-        VP.VisualsContribution.HasRule VP.PassThruSorterRule\r
-\r
-    VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-        VP.VisualsContribution.HasNodeType TEMPLATE2D.FlagTableUI\r
-        VP.VisualsContribution.HasRule VP.PassThruSorterRule\r
-\r
-    VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution\r
-        VP.VisualsContribution.HasNodeType TEMPLATE2D.FlagTypeVisualUI\r
-        VP.VisualsContribution.HasRule VP.PassThruSorterRule\r
-\r
-DIAGRAM_TEMPLATE_BC\r
-    @VP.customLabelRule             TEMPLATE2D.BrowseNode       VP.StandardNameLabelRule\r
-    @VP.customLabelRule             TEMPLATE2D.PageOrientation  VP.ResourceNameLabelRule\r
-\r
-DIAGRAM_TEMPLATE_BC\r
-    @VP.constantImageRule           TEMPLATE2D.BrowseNode                       IMAGES.DiagramTemplateLibrary\r
-    @VP.constantImageRule           TEMPLATE2D.BorderUI                         IMAGES.BorderIcon\r
-    @VP.constantImageRule           TEMPLATE2D.FlagTable                        IMAGES.FlagTableIcon\r
-    @VP.constantImageRule           TEMPLATE2D.FlagTableUI                      IMAGES.FlagTableIcon\r
-    @VP.constantImageRule           TEMPLATE2D.FlagTableUI.ColumnUI.DataUI      IMAGES.DiagramTemplateDataIcon\r
-    @VP.constantImageRule           TEMPLATE2D.FlagTableUI.ColumnUI.HeaderUI    IMAGES.DiagramTemplateHeaderIcon\r
-    @VP.constantImageRule           TEMPLATE2D.FlagTypeVisual                   IMAGES.FlagTypeVisualIcon\r
-    @VP.constantImageRule           TEMPLATE2D.FlagTypeVisualUI                 IMAGES.FlagTypeVisualIcon\r
-    @VP.constantImageRule           TEMPLATE2D.FlagTypeVisual.Filter            IMAGES.FilterIcon\r
-    @VP.constantImageRule           TEMPLATE2D.FlagTypeVisual.FilterUI          IMAGES.FilterIcon\r
-    @VP.constantImageRule           TEMPLATE2D.FlagTableUI.ColumnUI             IMAGES.FlagTableColumnIcon\r
-    @VP.constantImageRule           TEMPLATE2D.FlagTable.RowNumberColumn        IMAGES.FlagTableNumberingColumnIcon\r
-    @VP.constantImageRule           TEMPLATE2D.Page                             IMAGES.PageIcon\r
-    @VP.constantImageRule           SG.Node                                     IMAGES.ScenegraphNode\r
-    @VP.constantImageRule           TEMPLATE2D.CompositeUI                      IMAGES.VisualCompositeIcon\r
-    @VP.constantImageRule           DIA.Scenegraph.Composite                    IMAGES.VisualCompositeIcon\r
-    @VP.constantImageRule           DIA.Scenegraph.Text                         IMAGES.TextIcon\r
-    @VP.constantImageRule           DIA.Scenegraph.Monitor                      IMAGES.MonitorIcon\r
-    @VP.constantImageRule           DIA.Scenegraph.SVGImage                     IMAGES.SVGImageIcon\r
-\r
-DIAGRAM_TEMPLATE_AC = TEMPLATE2D.DiagramTemplateAC : VP.BrowseContext\r
-    VP.BrowseContext.IsIncludedIn MOD.ModelingActionContext\r
-    //MOD.ModelingActionContext\r
-\r
-TEMPLATE2D.DiagramTemplateAC.IsInModelTest : VP.Test\r
-\r
-DIAGRAM_TEMPLATE_AC\r
-    @VP.actionContribution "Diagram Template" TEMPLATE2D.DrawingTemplateLibraryUI IMAGES.NewDrawingTemplate VP.NewActionCategory ACTIONS.NewDrawingTemplate\r
-    @VP.actionContribution "VisualComposite" TEMPLATE2D.DrawingTemplateUI IMAGES.VisualCompositeIcon VP.NewActionCategory ACTIONS.NewScenegraph\r
-    @VP.actionContribution "VisualComposite" DIA.Scenegraph.Composite IMAGES.VisualCompositeIcon VP.NewActionCategory ACTIONS.NewScenegraph\r
-    @VP.actionContribution "FlagTable" TEMPLATE2D.DrawingTemplateUI IMAGES.FlagTableIcon VP.NewActionCategory ACTIONS.NewFlagTable\r
-    @VP.actionContribution "FlagTypeVisual" TEMPLATE2D.FlagTable IMAGES.FlagTypeVisualIcon VP.NewActionCategory ACTIONS.NewFlagTypeVisual\r
-    @VP.actionContribution "Filter" DIA.Scenegraph.Node IMAGES.FilterIcon VP.NewActionCategory ACTIONS.NewFlagTypeVisualFilter\r
-    @VP.actionContribution "Column" TEMPLATE2D.FlagTableUI IMAGES.FlagTableColumnIcon VP.NewActionCategory ACTIONS.NewFlagTableColumn\r
-    @VP.actionContribution "Data" TEMPLATE2D.FlagTableUI.ColumnUI IMAGES.DiagramTemplateDataIcon VP.NewActionCategory ACTIONS.NewFlagTableColumnData\r
-    @VP.actionContribution "Header" TEMPLATE2D.FlagTableUI.ColumnUI IMAGES.DiagramTemplateHeaderIcon VP.NewActionCategory ACTIONS.NewFlagTableColumnHeader\r
-    @VP.actionContribution "Row Numbering" TEMPLATE2D.FlagTableUI IMAGES.FlagTableNumberingColumnIcon VP.NewActionCategory ACTIONS.NewFlagTableRowNumberColumn\r
-    @VP.actionContribution "SVGImage" DIA.Scenegraph.Composite IMAGES.SVGImageIcon VP.NewActionCategory ACTIONS.NewSVGImage\r
-    @VP.actionContribution "SVGImage" TEMPLATE2D.FlagTableUI.ColumnUI IMAGES.SVGImageIcon VP.NewActionCategory ACTIONS.NewSVGImage\r
-    @VP.actionContribution "Monitor" DIA.Scenegraph.Composite IMAGES.MonitorIcon VP.NewActionCategory ACTIONS.NewMonitor\r
-    @VP.actionContribution "Text" DIA.Scenegraph.Composite IMAGES.TextIcon VP.NewActionCategory ACTIONS.NewText\r
-    @VP.actionContribution "Move Up" DIA.Scenegraph.Node IMAGES.MoveUpIcon ACTIONS.NoActionCategory ACTIONS.MoveUp\r
-    @VP.actionContribution "Move Down" DIA.Scenegraph.Node IMAGES.MoveDownIcon ACTIONS.NoActionCategory ACTIONS.MoveDown\r
-    @VP.actionContribution "Move Up" TEMPLATE2D.FlagTableUI.ColumnUI IMAGES.MoveUpIcon ACTIONS.NoActionCategory ACTIONS.MoveUp\r
-    @VP.actionContribution "Move Down" TEMPLATE2D.FlagTableUI.ColumnUI IMAGES.MoveDownIcon ACTIONS.NoActionCategory ACTIONS.MoveDown\r
-    @VP.actionContribution "Move up" TEMPLATE2D.FlagTypeVisual.FilterUI IMAGES.MoveUpIcon ACTIONS.NoActionCategory ACTIONS.MoveUp\r
-    @VP.actionContribution "Move Down" TEMPLATE2D.FlagTypeVisual.FilterUI IMAGES.MoveDownIcon ACTIONS.NoActionCategory ACTIONS.MoveDown\r
-    // This was just a temporary hack for fixing broken linked lists caused by the lack of NodeRemover.\r
-    //@VP.actionContribution "Fix Linked List" DIA.Scenegraph.Composite IMAGES.MoveDownIcon ACTIONS.NoActionCategory ACTIONS.FixLinkedList\r
-\r
-    @VP.actionContribution "Set Color" TEMPLATE2D.BorderUI IMAGES.Action ACTIONS.NoActionCategory ACTIONS.SetBorderColor\r
-    //@VP.actionContribution "Set font" TEMPLATE2D.TextTemplateUI IMAGES.Action ACTIONS.NoActionCategory ACTIONS.SetTextTemplateFont\r
-    @VP.actionContributionWithVisibility "Assign Diagram Template" STR.Composite IMAGES.Action VP.EditActionCategory ACTIONS.AssignDrawingTemplate TEMPLATE2D.DiagramTemplateAC.IsInModelTest\r
-\r
-ACTIONS = TEMPLATE2D.Actions : L0.Library\r
-ACTIONS.AssignDrawingTemplate : ACT.Action\r
-ACTIONS.NewDrawingTemplate : ACT.Action\r
-ACTIONS.SetBorderColor : ACT.Action\r
-ACTIONS.NewScenegraph : ACT.Action\r
-ACTIONS.NewFlagTable : ACT.Action\r
-ACTIONS.NewFlagTypeVisual : ACT.Action\r
-ACTIONS.NewFlagTypeVisualFilter : ACT.Action\r
-ACTIONS.NewFlagTableColumn : ACT.Action\r
-ACTIONS.NewFlagTableRowNumberColumn : ACT.Action\r
-ACTIONS.NewFlagTableColumnData : ACT.Action\r
-ACTIONS.NewFlagTableColumnHeader : ACT.Action\r
-ACTIONS.NewMonitor : ACT.Action\r
-ACTIONS.NewText : ACT.Action\r
-ACTIONS.NewSVGImage : ACT.Action\r
-ACTIONS.MoveUp : ACT.Action\r
-ACTIONS.MoveDown : ACT.Action\r
-//ACTIONS.FixLinkedList : ACT.Action\r
-\r
-ACTIONS.NoActionCategory : VP.ActionCategory\r
-    L0.HasLabel "Root"\r
-    VP.ActionCategory.IsSubmenu L0.False\r
-\r
-IMAGES = TEMPLATE2D.Images : L0.Library\r
-IMAGES.Action : IMAGE.PngImage\r
-    @L0.loadBytes "images/action.png"\r
-IMAGES.NewDrawingTemplate : IMAGE.PngImage\r
-    @L0.loadBytes "images/layout_add.png"\r
-IMAGES.ScenegraphNode : IMAGE.PngImage\r
-    @L0.loadBytes "images/shape_square.png"\r
-IMAGES.DiagramTemplateLibrary : IMAGE.PngImage\r
-    @L0.loadBytes "images/folder_page.png"\r
-IMAGES.DiagramTemplate : IMAGE.PngImage\r
-    @L0.loadBytes "images/layout_sidebar.png"\r
-IMAGES.DiagramTemplateDataIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/templateData.png"\r
-IMAGES.DiagramTemplateHeaderIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/templateHeader.png"\r
-IMAGES.MonitorIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/text_complete.png"\r
-IMAGES.TextIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/textfield.png"\r
-IMAGES.VisualCompositeIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/layout_content.png"\r
-IMAGES.FlagTableIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/slottable.png"\r
-IMAGES.FlagTableColumnIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/slottable_column.png"\r
-IMAGES.FlagTableNumberingColumnIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/slottable_numbering_column.png"\r
-IMAGES.FlagTypeVisualIcon: IMAGE.PngImage\r
-    @L0.loadBytes "images/flagtypevisual.png"\r
-IMAGES.SVGImageIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/image.png"\r
-IMAGES.BorderIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/border_outer.png"\r
-IMAGES.ColumnIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/border_outer.png"\r
-IMAGES.MoveUpIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/arrow_up.png"\r
-IMAGES.MoveDownIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/arrow_down.png"\r
-IMAGES.PageIcon : IMAGE.PngImage\r
-    @L0.loadBytes "images/page_white_horizontal.png"\r
-IMAGES.FilterIcon: IMAGE.PngImage\r
-    @L0.loadBytes "images/basket_put.png"\r
+L0 = <http://www.simantics.org/Layer0-1.1>
+L0X = <http://www.simantics.org/Layer0X-1.1>
+STR = <http://www.simantics.org/Structural-1.2>
+DIA = <http://www.simantics.org/Diagram-2.2>
+MOD = <http://www.simantics.org/Modeling-1.2>
+TEMPLATE2D = <http://www.simantics.org/ModelingTemplate2d-1.0>
+IMAGE = <http://www.simantics.org/Image2-1.2>
+VP = <http://www.simantics.org/Viewpoint-1.2>
+PROJ = <http://www.simantics.org/Project-1.2>
+ACT = <http://www.simantics.org/Action-1.1>
+G2D = <http://www.simantics.org/G2D-1.1>
+SG = <http://www.simantics.org/Scenegraph-1.1>
+SEL = <http://www.simantics.org/SelectionView-1.2>
+SEL_UI = <http://www.simantics.org/SelectionViewUI-1.1>
+ANNO = <http://www.simantics.org/Annotation-1.0>
+
+DIAGRAM_TEMPLATE_BC = TEMPLATE2D.DiagramTemplateBC : VP.BrowseContext
+//    VP.BrowseContext.IsIncludedIn MOD.ModelingBrowseContext
+//    VP.BrowseContext.IsIncludedIn PROJ.ProjectBrowseContext
+
+
+TEMPLATE2D.BrowseNode <T L0.Entity
+TEMPLATE2D.DrawingTemplateLibraryUI <T TEMPLATE2D.BrowseNode
+TEMPLATE2D.DrawingTemplateUI <T TEMPLATE2D.BrowseNode <T L0.Library
+TEMPLATE2D.BorderUI <T TEMPLATE2D.BrowseNode
+TEMPLATE2D.TextTemplateUI <T TEMPLATE2D.BrowseNode
+TEMPLATE2D.FlagTableUI <T TEMPLATE2D.BrowseNode
+TEMPLATE2D.FlagTypeVisualUI <T TEMPLATE2D.BrowseNode
+TEMPLATE2D.FlagTypeVisual.FilterUI <T TEMPLATE2D.BrowseNode
+TEMPLATE2D.FlagTableUI.ColumnUI <T TEMPLATE2D.BrowseNode
+TEMPLATE2D.FlagTableUI.ColumnUI.DataUI <T TEMPLATE2D.BrowseNode
+TEMPLATE2D.FlagTableUI.ColumnUI.HeaderUI <T TEMPLATE2D.BrowseNode
+TEMPLATE2D.CompositeUI <T TEMPLATE2D.BrowseNode
+
+TEMPLATE2D.TemplateTabContribution : SEL.TypedVariableTabContribution
+    SEL.TypedVariableTabContribution.HasType SG.Node
+    SEL.VariableTabContribution.HasView SEL_UI.StandardProperties
+    SEL.VariableTabContribution.HasPriority 1
+    L0.HasLabel "Parameters"
+
+TEMPLATE2D.DiagramTemplateBC.ScenegraphChildren : VP.ChildRule
+    VP.RelationChildRule.HasRelation SG.Node.children
+
+DIAGRAM_TEMPLATE_BC
+    // Produces drawing template library/libraries under model
+    @VP.relationChildRule MOD.StructuralModel TEMPLATE2D.HasDrawingTemplateRoot TEMPLATE2D.BrowseNode
+
+    // Produces BrowseNode hierarchy through L0.ConsistsOf but leaves out
+    // CompositeUI instances. Those are contributed separately.
+    VP.BrowseContext.HasChildContribution _ : VP.ChildContribution
+        VP.ChildContribution.HasParentNodeType TEMPLATE2D.BrowseNode
+        VP.ChildContribution.HasChildNodeType  TEMPLATE2D.BrowseNode 
+        VP.ChildContribution.HasRule           _ : VP.RelationChildRule
+            VP.RelationChildRule.HasRelation       L0.ConsistsOf
+            VP.RelationChildRule.HasTest           _ : VP.HasNegatedTest
+                VP.HasNegatedTest.HasTest              _ : VP.OrTest
+                    VP.OrTest.HasTest
+                        _ : VP.HasInstanceOfTest
+                            VP.HasInstanceOfTest.IsInstanceOf TEMPLATE2D.CompositeUI
+                        _ : VP.HasInstanceOfTest
+                            VP.HasInstanceOfTest.IsInstanceOf TEMPLATE2D.FlagTableUI
+
+    // Produce root-level VisualComposites under drawing template.
+    @VP.relationChildRule TEMPLATE2D.DrawingTemplateUI L0.ConsistsOf DIA.Scenegraph.Composite
+
+    // Produces filters under scene graph nodes in flag type visuals
+    @VP.relationChildRule SG.Node L0.ConsistsOf TEMPLATE2D.FlagTypeVisual.Filter
+
+    // Produces scene graph node hiearchy under DIA.Scenegraph.Composite instances
+    VP.BrowseContext.HasChildContribution _ : VP.ChildContribution
+        VP.ChildContribution.HasParentNodeType DIA.Scenegraph.Composite
+        VP.ChildContribution.HasChildNodeType  DIA.Scenegraph.Node
+        VP.ChildContribution.HasRule           TEMPLATE2D.DiagramTemplateBC.ScenegraphChildren
+
+    VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+        VP.VisualsContribution.HasNodeType DIA.Scenegraph.Composite
+        VP.VisualsContribution.HasRule VP.PassThruSorterRule
+
+    VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+        VP.VisualsContribution.HasNodeType TEMPLATE2D.CompositeUI
+        VP.VisualsContribution.HasRule VP.PassThruSorterRule
+
+    VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+        VP.VisualsContribution.HasNodeType TEMPLATE2D.FlagTableUI
+        VP.VisualsContribution.HasRule VP.PassThruSorterRule
+
+    VP.BrowseContext.HasVisualsContribution _ : VP.VisualsContribution
+        VP.VisualsContribution.HasNodeType TEMPLATE2D.FlagTypeVisualUI
+        VP.VisualsContribution.HasRule VP.PassThruSorterRule
+
+DIAGRAM_TEMPLATE_BC
+    @VP.customLabelRule             TEMPLATE2D.BrowseNode       VP.StandardNameLabelRule
+    @VP.customLabelRule             TEMPLATE2D.PageOrientation  VP.ResourceNameLabelRule
+
+DIAGRAM_TEMPLATE_BC
+    @VP.constantImageRule           TEMPLATE2D.BrowseNode                       IMAGES.DiagramTemplateLibrary
+    @VP.constantImageRule           TEMPLATE2D.BorderUI                         IMAGES.BorderIcon
+    @VP.constantImageRule           TEMPLATE2D.FlagTable                        IMAGES.FlagTableIcon
+    @VP.constantImageRule           TEMPLATE2D.FlagTableUI                      IMAGES.FlagTableIcon
+    @VP.constantImageRule           TEMPLATE2D.FlagTableUI.ColumnUI.DataUI      IMAGES.DiagramTemplateDataIcon
+    @VP.constantImageRule           TEMPLATE2D.FlagTableUI.ColumnUI.HeaderUI    IMAGES.DiagramTemplateHeaderIcon
+    @VP.constantImageRule           TEMPLATE2D.FlagTypeVisual                   IMAGES.FlagTypeVisualIcon
+    @VP.constantImageRule           TEMPLATE2D.FlagTypeVisualUI                 IMAGES.FlagTypeVisualIcon
+    @VP.constantImageRule           TEMPLATE2D.FlagTypeVisual.Filter            IMAGES.FilterIcon
+    @VP.constantImageRule           TEMPLATE2D.FlagTypeVisual.FilterUI          IMAGES.FilterIcon
+    @VP.constantImageRule           TEMPLATE2D.FlagTableUI.ColumnUI             IMAGES.FlagTableColumnIcon
+    @VP.constantImageRule           TEMPLATE2D.FlagTable.RowNumberColumn        IMAGES.FlagTableNumberingColumnIcon
+    @VP.constantImageRule           TEMPLATE2D.Page                             IMAGES.PageIcon
+    @VP.constantImageRule           SG.Node                                     IMAGES.ScenegraphNode
+    @VP.constantImageRule           TEMPLATE2D.CompositeUI                      IMAGES.VisualCompositeIcon
+    @VP.constantImageRule           DIA.Scenegraph.Composite                    IMAGES.VisualCompositeIcon
+    @VP.constantImageRule           DIA.Scenegraph.Text                         IMAGES.TextIcon
+    @VP.constantImageRule           DIA.Scenegraph.Monitor                      IMAGES.MonitorIcon
+    @VP.constantImageRule           DIA.Scenegraph.SVGImage                     IMAGES.SVGImageIcon
+
+DIAGRAM_TEMPLATE_AC = TEMPLATE2D.DiagramTemplateAC : VP.BrowseContext
+    VP.BrowseContext.IsIncludedIn MOD.ModelingActionContext
+    //MOD.ModelingActionContext
+
+TEMPLATE2D.DiagramTemplateAC.IsInModelTest : VP.Test
+
+DIAGRAM_TEMPLATE_AC
+    @VP.actionContribution "Diagram Template" TEMPLATE2D.DrawingTemplateLibraryUI IMAGES.NewDrawingTemplate VP.NewActionCategory ACTIONS.NewDrawingTemplate
+    @VP.actionContribution "VisualComposite" TEMPLATE2D.DrawingTemplateUI IMAGES.VisualCompositeIcon VP.NewActionCategory ACTIONS.NewScenegraph
+    @VP.actionContribution "VisualComposite" DIA.Scenegraph.Composite IMAGES.VisualCompositeIcon VP.NewActionCategory ACTIONS.NewScenegraph
+    @VP.actionContribution "FlagTable" TEMPLATE2D.DrawingTemplateUI IMAGES.FlagTableIcon VP.NewActionCategory ACTIONS.NewFlagTable
+    @VP.actionContribution "FlagTypeVisual" TEMPLATE2D.FlagTable IMAGES.FlagTypeVisualIcon VP.NewActionCategory ACTIONS.NewFlagTypeVisual
+    @VP.actionContribution "Filter" DIA.Scenegraph.Node IMAGES.FilterIcon VP.NewActionCategory ACTIONS.NewFlagTypeVisualFilter
+    @VP.actionContribution "Column" TEMPLATE2D.FlagTableUI IMAGES.FlagTableColumnIcon VP.NewActionCategory ACTIONS.NewFlagTableColumn
+    @VP.actionContribution "Data" TEMPLATE2D.FlagTableUI.ColumnUI IMAGES.DiagramTemplateDataIcon VP.NewActionCategory ACTIONS.NewFlagTableColumnData
+    @VP.actionContribution "Header" TEMPLATE2D.FlagTableUI.ColumnUI IMAGES.DiagramTemplateHeaderIcon VP.NewActionCategory ACTIONS.NewFlagTableColumnHeader
+    @VP.actionContribution "Row Numbering" TEMPLATE2D.FlagTableUI IMAGES.FlagTableNumberingColumnIcon VP.NewActionCategory ACTIONS.NewFlagTableRowNumberColumn
+    @VP.actionContribution "SVGImage" DIA.Scenegraph.Composite IMAGES.SVGImageIcon VP.NewActionCategory ACTIONS.NewSVGImage
+    @VP.actionContribution "SVGImage" TEMPLATE2D.FlagTableUI.ColumnUI IMAGES.SVGImageIcon VP.NewActionCategory ACTIONS.NewSVGImage
+    @VP.actionContribution "Monitor" DIA.Scenegraph.Composite IMAGES.MonitorIcon VP.NewActionCategory ACTIONS.NewMonitor
+    @VP.actionContribution "Text" DIA.Scenegraph.Composite IMAGES.TextIcon VP.NewActionCategory ACTIONS.NewText
+    @VP.actionContribution "Move Up" DIA.Scenegraph.Node IMAGES.MoveUpIcon ACTIONS.NoActionCategory ACTIONS.MoveUp
+    @VP.actionContribution "Move Down" DIA.Scenegraph.Node IMAGES.MoveDownIcon ACTIONS.NoActionCategory ACTIONS.MoveDown
+    @VP.actionContribution "Move Up" TEMPLATE2D.FlagTableUI.ColumnUI IMAGES.MoveUpIcon ACTIONS.NoActionCategory ACTIONS.MoveUp
+    @VP.actionContribution "Move Down" TEMPLATE2D.FlagTableUI.ColumnUI IMAGES.MoveDownIcon ACTIONS.NoActionCategory ACTIONS.MoveDown
+    @VP.actionContribution "Move up" TEMPLATE2D.FlagTypeVisual.FilterUI IMAGES.MoveUpIcon ACTIONS.NoActionCategory ACTIONS.MoveUp
+    @VP.actionContribution "Move Down" TEMPLATE2D.FlagTypeVisual.FilterUI IMAGES.MoveDownIcon ACTIONS.NoActionCategory ACTIONS.MoveDown
+    // This was just a temporary hack for fixing broken linked lists caused by the lack of NodeRemover.
+    //@VP.actionContribution "Fix Linked List" DIA.Scenegraph.Composite IMAGES.MoveDownIcon ACTIONS.NoActionCategory ACTIONS.FixLinkedList
+
+    @VP.actionContribution "Set Color" TEMPLATE2D.BorderUI IMAGES.Action ACTIONS.NoActionCategory ACTIONS.SetBorderColor
+    //@VP.actionContribution "Set font" TEMPLATE2D.TextTemplateUI IMAGES.Action ACTIONS.NoActionCategory ACTIONS.SetTextTemplateFont
+    @VP.actionContributionWithVisibility "Assign Diagram Template" STR.Composite IMAGES.Action VP.EditActionCategory ACTIONS.AssignDrawingTemplate TEMPLATE2D.DiagramTemplateAC.IsInModelTest
+
+ACTIONS = TEMPLATE2D.Actions : L0.Library
+ACTIONS.AssignDrawingTemplate : ACT.Action
+ACTIONS.NewDrawingTemplate : ACT.Action
+ACTIONS.SetBorderColor : ACT.Action
+ACTIONS.NewScenegraph : ACT.Action
+ACTIONS.NewFlagTable : ACT.Action
+ACTIONS.NewFlagTypeVisual : ACT.Action
+ACTIONS.NewFlagTypeVisualFilter : ACT.Action
+ACTIONS.NewFlagTableColumn : ACT.Action
+ACTIONS.NewFlagTableRowNumberColumn : ACT.Action
+ACTIONS.NewFlagTableColumnData : ACT.Action
+ACTIONS.NewFlagTableColumnHeader : ACT.Action
+ACTIONS.NewMonitor : ACT.Action
+ACTIONS.NewText : ACT.Action
+ACTIONS.NewSVGImage : ACT.Action
+ACTIONS.MoveUp : ACT.Action
+ACTIONS.MoveDown : ACT.Action
+//ACTIONS.FixLinkedList : ACT.Action
+
+ACTIONS.NoActionCategory : VP.ActionCategory
+    L0.HasLabel "Root"
+    VP.ActionCategory.IsSubmenu L0.False
+
+IMAGES = TEMPLATE2D.Images : L0.Library
+IMAGES.Action : IMAGE.PngImage
+    @L0.loadBytes "images/action.png"
+IMAGES.NewDrawingTemplate : IMAGE.PngImage
+    @L0.loadBytes "images/layout_add.png"
+IMAGES.ScenegraphNode : IMAGE.PngImage
+    @L0.loadBytes "images/shape_square.png"
+IMAGES.DiagramTemplateLibrary : IMAGE.PngImage
+    @L0.loadBytes "images/folder_page.png"
+IMAGES.DiagramTemplate : IMAGE.PngImage
+    @L0.loadBytes "images/layout_sidebar.png"
+IMAGES.DiagramTemplateDataIcon : IMAGE.PngImage
+    @L0.loadBytes "images/templateData.png"
+IMAGES.DiagramTemplateHeaderIcon : IMAGE.PngImage
+    @L0.loadBytes "images/templateHeader.png"
+IMAGES.MonitorIcon : IMAGE.PngImage
+    @L0.loadBytes "images/text_complete.png"
+IMAGES.TextIcon : IMAGE.PngImage
+    @L0.loadBytes "images/textfield.png"
+IMAGES.VisualCompositeIcon : IMAGE.PngImage
+    @L0.loadBytes "images/layout_content.png"
+IMAGES.FlagTableIcon : IMAGE.PngImage
+    @L0.loadBytes "images/slottable.png"
+IMAGES.FlagTableColumnIcon : IMAGE.PngImage
+    @L0.loadBytes "images/slottable_column.png"
+IMAGES.FlagTableNumberingColumnIcon : IMAGE.PngImage
+    @L0.loadBytes "images/slottable_numbering_column.png"
+IMAGES.FlagTypeVisualIcon: IMAGE.PngImage
+    @L0.loadBytes "images/flagtypevisual.png"
+IMAGES.SVGImageIcon : IMAGE.PngImage
+    @L0.loadBytes "images/image.png"
+IMAGES.BorderIcon : IMAGE.PngImage
+    @L0.loadBytes "images/border_outer.png"
+IMAGES.ColumnIcon : IMAGE.PngImage
+    @L0.loadBytes "images/border_outer.png"
+IMAGES.MoveUpIcon : IMAGE.PngImage
+    @L0.loadBytes "images/arrow_up.png"
+IMAGES.MoveDownIcon : IMAGE.PngImage
+    @L0.loadBytes "images/arrow_down.png"
+IMAGES.PageIcon : IMAGE.PngImage
+    @L0.loadBytes "images/page_white_horizontal.png"
+IMAGES.FilterIcon: IMAGE.PngImage
+    @L0.loadBytes "images/basket_put.png"