void ConnectToWaitingBranche(ICanvasNode node)
        {
            if (!(node is Condition.Node) || !(_waitingBranch is Condition.ConditionBranch))
            {
                _setFormButtonAsConnected();
                Edge e = new Edge();
                node.ClipInputEdge(e);
                _waitingBranch.ClipOutputEdge(e);
                _waitingBranch = null;

                if (_waitingNode != _selectedNode)
                {
                    _waitingNode.Deselect();
                }
                else
                {
                    _waitingNode.DrawBorder(BorderStyle.Selected);
                }
                _waitingNode = null;
                _escapeButtonAbortingState = null;
            }
            else
            {
                if (_escapeButtonAbortingState != null)
                {
                    _escapeButtonAbortingState();
                }
                AbortWaiting();
            }
        }
 public void SetAsWaiting(DockBranch b, Action a, Action a2)
 {
     _setFormButtonAsConnected = a;
     if (_escapeButtonAbortingState != null)
     {
         _escapeButtonAbortingState();
         _waitingNode.Deselect();
     }
     _escapeButtonAbortingState = a2;
     _waitingBranch             = b;
     _selectedNode.SelectAsWaiting();
     _waitingNode = _selectedNode;
 }
        public void AbortWaiting()
        {
            _setFormButtonAsConnected = null;
            _waitingBranch            = null;

            if (_waitingNode != _selectedNode)
            {
                _waitingNode.Deselect();
            }
            else
            {
                _waitingNode.DrawBorder(BorderStyle.Selected);
            }

            _waitingNode = null;
            _escapeButtonAbortingState = null;
        }