예제 #1
0
파일: Graph.cs 프로젝트: despin89/repo
        public void UnLink(AbstractSocket socket)
        {
            if ((socket == null) || !socket.IsConnected())
            {
                return;
            }


            if (socket.IsInput())
            {
                InputSocket inputSocket = (InputSocket)socket;
                if (inputSocket.Connection != null)
                {
                    this.UnLink(inputSocket, inputSocket.Connection.Output);
                }
            }

            if (socket.IsOutput())
            {
                OutputSocket outputSocket   = (OutputSocket)socket;
                Connection[] connectionCopy = new Connection[outputSocket.Connections.Count];
                outputSocket.Connections.CopyTo(connectionCopy);
                foreach (Connection edge in connectionCopy)
                {
                    this.UnLink(edge.Input, outputSocket);
                }
            }
        }
예제 #2
0
 private void HandleSocketDrag(AbstractSocket dragSource)
 {
     if (dragSource != null)
     {
         if (dragSource.IsInput() && dragSource.IsConnected())
         {
             this._dragSourceSocket = ((InputSocket)dragSource).Connection.GetOtherSocket(dragSource);
             this._currentCanvas.Graph.UnLink((InputSocket)dragSource, (OutputSocket)this._dragSourceSocket);
         }
         if (dragSource.IsOutput())
         {
             this._dragSourceSocket = dragSource;
         }
         Event.current.Use();
     }
     this.Repaint();
 }