Beispiel #1
0
        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();
                }
            }
        }
Beispiel #2
0
		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();
				}
			}
		}