public override void Dragged(Point location) { ItemTab draggedTab = null; foreach (ItemTab tab in SubElements.OfType <ItemTab>()) { if (tab.bounds.Contains(new Point(DragOffsetX, DragOffsetY))) { draggedTab = tab; } } if (draggedTab != null) { DraggedLinkElement newLink = new DraggedLinkElement(Parent, this, draggedTab.Type, draggedTab.Item); if (draggedTab.Type == LinkType.Input) { newLink.ConsumerElement = this; } else { newLink.SupplierElement = this; } Parent.DraggedElement = newLink; } else { X += location.X - DragOffsetX; Y += location.Y - DragOffsetY; foreach (ProductionNode node in DisplayedNode.InputLinks.Select <NodeLink, ProductionNode>(l => l.Supplier)) { Parent.GetElementForNode(node).UpdateTabOrder(); } foreach (ProductionNode node in DisplayedNode.OutputLinks.Select <NodeLink, ProductionNode>(l => l.Consumer)) { Parent.GetElementForNode(node).UpdateTabOrder(); } } }
public override void Dragged(Point location) { ItemTab draggedTab = null; foreach (ItemTab tab in SubElements.OfType<ItemTab>()) { if (tab.bounds.Contains(new Point(DragOffsetX, DragOffsetY))) { draggedTab = tab; } } if (draggedTab != null) { DraggedLinkElement newLink = new DraggedLinkElement(Parent, this, draggedTab.Type, draggedTab.Item); if (draggedTab.Type == LinkType.Input) { newLink.ConsumerElement = this; } else { newLink.SupplierElement = this; } Parent.DraggedElement = newLink; } else { X += location.X - DragOffsetX; Y += location.Y - DragOffsetY; foreach (ProductionNode node in DisplayedNode.InputLinks.Select<NodeLink, ProductionNode>(l => l.Supplier)) { Parent.GetElementForNode(node).UpdateTabOrder(); } foreach (ProductionNode node in DisplayedNode.OutputLinks.Select<NodeLink, ProductionNode>(l => l.Consumer)) { Parent.GetElementForNode(node).UpdateTabOrder(); } } }