//Genera una conexión entre dos nodos preexistentes public void AddConnection() { if (_lastRightClickedNode == null || _lastLeftClickedNode == null) { return; } /* Ya que hay nodos que no pueden tener ciertos tipos de padre (el nodo respuesta no puede * tener otro nodo respuesta como padre) chequeo que la conexión que se intente hacer sea válida */ #region Checkeo legacy, para referencia //if ((_lastLeftClickedNode is StartNode && _lastRightClickedNode is ProductNode) // || (_lastLeftClickedNode is ProductNode && _lastRightClickedNode is OptionNode) // || (_lastLeftClickedNode is OptionNode && _lastRightClickedNode is ProductNode) // || (_lastLeftClickedNode is EndNode && _lastRightClickedNode is OptionNode) // || (_lastLeftClickedNode is ComparativeNode && _lastRightClickedNode is OptionNode)) #endregion if (_lastLeftClickedNode.CanTransitionTo(_lastRightClickedNode)) { /* Si la conexión es válida seteo al ultimo nodo en el cual se hizo click * izquierdo como el padre del ultimo nodo en el que se hizo click derecho */ _lastRightClickedNode.SetParent(_lastLeftClickedNode); if (_lastLeftClickedNode is INeedsChildren) { ((INeedsChildren)_lastLeftClickedNode).AssignChild(_lastRightClickedNode, 0); } } }
public void AddConnection(BaseNode origin, BaseNode target) { if (target == null || origin == null) { return; } /* Ya que hay nodos que no pueden tener ciertos tipos de padre (el nodo respuesta no puede * tener otro nodo respuesta como padre) chequeo que la conexión que se intente hacer sea válida */ #region Checkeo legacy, para referencia //if ((origin is StartNode && target is ProductNode) // || (origin is ProductNode && target is OptionNode) // || (origin is OptionNode && target is ProductNode) // || (origin is EndNode && target is OptionNode) // || (origin is ComparativeNode && target is OptionNode)) #endregion if (origin.CanTransitionTo(target)) { /* Si la conexión es válida seteo al ultimo nodo en el cual se hizo click * izquierdo como el padre del ultimo nodo en el que se hizo click derecho */ target.SetParent(origin); if (origin is INeedsChildren) { ((INeedsChildren)origin).AssignChild(target, 0); } } }
public void AddFalseConnection(BaseNode origin, BaseNode target) { if (target == null || origin == null) { return; } if (origin.CanTransitionTo(target)) { /* Si la conexión es válida seteo al ultimo nodo en el cual se hizo click * izquierdo como el padre del ultimo nodo en el que se hizo click derecho */ target.SetParent(origin); if (origin is INeedsChildren) { ((INeedsChildren)origin).AssignChild(target, 1); } } }