private void ShowAsParentNode([NotNull] IModelNode addedModelNode, [NotNull] IModel model) { var diagram = DiagramService.LatestDiagram; var childNodes = model.GetRelatedNodes(addedModelNode.Id, CommonDirectedModelRelationshipTypes.Contained); if (childNodes.Any(i => diagram.NodeExists(i.Id))) { DiagramService.AddNode(addedModelNode.Id); } }
protected async Task <Maybe <IModelNode> > TryAddCurrentSymbolToDiagramAsync() { var maybeSymbol = await RoslynWorkspaceProvider.TryGetCurrentSymbolAsync(); if (!maybeSymbol.HasValue) { return(Maybe <IModelNode> .Nothing); } var modelNode = RoslynBasedModelService.GetOrAddNode(maybeSymbol.Value); DiagramService.AddNode(modelNode.Id); return(Maybe.Create(modelNode)); }
private void ShowParentNode([NotNull] IDiagramNode diagramNode) { var modelNode = diagramNode.ModelNode; if (!modelNode.Stereotype.In(TypeMemberModelNodeStereotypes)) { return; } var parentModelNode = _modelService.LatestModel.GetRelatedNodes(modelNode.Id, CommonDirectedModelRelationshipTypes.Container).SingleOrDefault(); if (parentModelNode != null) { DiagramService.AddNode(parentModelNode.Id); } }