protected void OnMouseDown(MouseDownEvent evt)
        {
            if (m_Active)
            {
                evt.StopImmediatePropagation();
                return;
            }

            if (!CanStartManipulation(evt))
            {
                return;
            }

            m_Edge = (evt.target as VisualElement).parent as Edge;

            if (m_Edge != null)
            {
                m_EdgePresenter = m_Edge.GetPresenter <EdgePresenter>();
            }

            m_PressPos = evt.mousePosition;
            target.TakeMouseCapture();
            evt.StopPropagation();
            m_LastMouseDownEvent = evt;
        }
Exemple #2
0
            public void OnDrop(GraphView graphView, Edge edge)
            {
                if (graphView == null || edge == null)
                {
                    return;
                }

                if (graphView.presenter == null)
                {
                    return;
                }

                // Check if the edge already has a presenter then do not create it
                EdgePresenter edgePresenter = edge.GetPresenter <EdgePresenter>();

                if (edgePresenter == null)
                {
                    edgePresenter = ScriptableObject.CreateInstance <TEdgePresenter>();
                }

                edgePresenter.output = edge.output.GetPresenter <PortPresenter>();
                edgePresenter.input  = edge.input.GetPresenter <PortPresenter>();

                edgePresenter.output.Connect(edgePresenter);
                edgePresenter.input.Connect(edgePresenter);

                graphView.presenter.AddElement(edgePresenter);
            }
Exemple #3
0
        public virtual void Connect(Edge edge)
        {
            if (edge == null)
            {
                throw new ArgumentException("The value passed to Port.Connect is null");
            }

            // TODO: Remove when removing presenters.
            var presenter = GetPresenter <PortPresenter>();

            if (presenter != null)
            {
                var edgePresenter = edge.GetPresenter <EdgePresenter>();
                presenter.Connect(edgePresenter);
            }
            else
            {
                if (!m_Connections.Contains(edge))
                {
                    m_Connections.Add(edge);
                }
            }

            OnConnect?.Invoke(this);
        }
Exemple #4
0
 public void OnDrop(GraphView graphView, Edge edge)
 {
     if (graphView != null && edge != null)
     {
         if (!(graphView.presenter == null))
         {
             EdgePresenter edgePresenter = edge.GetPresenter <EdgePresenter>();
             if (edgePresenter == null)
             {
                 edgePresenter = ScriptableObject.CreateInstance <TEdgePresenter>();
             }
             edgePresenter.output = edge.output.GetPresenter <PortPresenter>();
             edgePresenter.input  = edge.input.GetPresenter <PortPresenter>();
             edgePresenter.output.Connect(edgePresenter);
             edgePresenter.input.Connect(edgePresenter);
             graphView.presenter.AddElement(edgePresenter);
         }
     }
 }
Exemple #5
0
        public virtual void Disconnect(Edge edge)
        {
            if (edge == null)
            {
                throw new ArgumentException("The value passed to PortPresenter.Disconnect is null");
            }
            PortPresenter presenter = base.GetPresenter <PortPresenter>();

            if (presenter != null)
            {
                EdgePresenter presenter2 = edge.GetPresenter <EdgePresenter>();
                presenter.Disconnect(presenter2);
            }
            else
            {
                this.m_Connections.Remove(edge);
            }
            if (this.OnDisconnect != null)
            {
                this.OnDisconnect(this);
            }
        }
Exemple #6
0
        public virtual void Connect(Edge edge)
        {
            if (edge == null)
            {
                throw new ArgumentException("The value passed to Port.Connect is null");
            }
            PortPresenter presenter = base.GetPresenter <PortPresenter>();

            if (presenter != null)
            {
                EdgePresenter presenter2 = edge.GetPresenter <EdgePresenter>();
                presenter.Connect(presenter2);
            }
            else if (!this.m_Connections.Contains(edge))
            {
                this.m_Connections.Add(edge);
            }
            if (this.OnConnect != null)
            {
                this.OnConnect(this);
            }
        }