private void AddNode(IDiagramNode diagramNode) { var diagramNodeUi = (DiagramNodeViewModelBase)_diagramShapeUiFactory.CreateDiagramNodeUi(DiagramService, diagramNode, MiniButtonPanelViewModel); diagramNodeUi.SizeChanged += OnDiagramNodeSizeChanged; diagramNodeUi.ShowRelatedNodesRequested += OnShowRelatedNodesRequested; diagramNodeUi.RelatedNodeSelectorRequested += OnEntitySelectorRequested; diagramNodeUi.RemoveRequested += OnRemoveDiagramNodeRequested; _diagramNodeToViewModelMap.Set(diagramNode, diagramNodeUi); if (DiagramService.TryGetContainerNode(diagramNode, out var containerNode) && IsNodeVisibleOnDiagram(containerNode, out var containerNodeUi)) { ((IContainerDiagramNodeUi)containerNodeUi).AddChildNode(diagramNodeUi); } else { DiagramNodeViewModels.Add(diagramNodeUi); } }