/// <inheritdoc/> public override void StartInteraction(DiagramInteractionEventArguments interaction) { if (interaction.ViewModelUnderMouse is Node node) { var nodeCopy = _nodeProvider.CreateNodeFromName(node.GetType().FullName); node.SetAdorner(null); _helpDialog = new HelpDialog(nodeCopy); _dialogHost.OpenDialog(_helpDialog); } }
/// <summary> /// Begin inserting a node onto the diagram. /// </summary> /// <param name="node">The node to insert.</param> /// <param name="insertCopy">Whether to insert a copy of <see cref="node"/>.</param> public void BeginInsertingNode(Node node, bool insertCopy = false) { var nodeTypeName = node.GetType().FullName; var nodeToInsert = insertCopy ? _nodeProvider.CreateNodeFromName(nodeTypeName) : node; nodeToInsert.Visible = false; nodeToInsert.Model.X = _diagram.GetDiagramPointFromViewPointX(X); nodeToInsert.Model.Y = _diagram.GetDiagramPointFromViewPointX(Y); _diagram.AddNodeInteractively(nodeToInsert); if (ContextTerminal != null) { var autoWirer = new NodeAutoWirer(); autoWirer.TryAutoWireTerminals(_diagram, ContextTerminal, nodeToInsert); } ContextTerminal = null; }