private void miDisconnectNodes_Click(object sender, EventArgs e) { MenuItem mi = sender as MenuItem; if (mi != null) { NodeData nd = mi.Tag as NodeData; if (nd != null) { LinkLineNode node = nd.Node; if (node != null) { if (nd.Data != null) { if (nd.Data.GetType().Equals(typeof(Point))) { Point pt = (Point)nd.Data; if (node.Line != null) { //=================== UInt32 key = node.ActiveDrawingID; UInt32 key1 = 0; UInt32 key2 = 0; LinkLineNodeInPort ip = node.LinkedInPort; node.BreakLine(pt, ref key1, ref key2); OnDisconnectLine(ip); if (UndoHost != null) { if (!UndoHost.DisableUndo) { LinkLineUndoReconnect undo = new LinkLineUndoReconnect(UndoHost, key, key1, key2); LinkLineUndoBreak redo = new LinkLineUndoBreak(UndoHost, key, key1, key2, pt); UndoHost.AddUndoEntity(new UndoEntity(undo, redo)); } } ActiveDrawing.RefreshControl(this); } } } } } } }
protected override void OnApply(LinkLineNode node) { node.BreakLine(_point, ref _node1, ref _node2); ActiveDrawing.RefreshControl(node.Parent); }