public void OnConnectionDragCompleted(Point currentDragPoint, ConnectionViewModel newConnection, ConnectorViewModel sourceConnector) { this.currentDragPoint = currentDragPoint; if (connectingTo) { InputConnectorViewModel nearbyConnector = FindNearbyInputConnector(newConnection, currentDragPoint); if (nearbyConnector == null) { RequestNodePickerWindow(newConnection); // pick return; } if (nearbyConnector == null || sourceConnector.Element == nearbyConnector.Element) { Connections.Remove(newConnection); return; } ConnectionViewModel existingConnection = nearbyConnector.Connection; if (existingConnection != null) { Connections.Remove(existingConnection); } newConnection.To = nearbyConnector; } else { OutputConnectorViewModel nearbyConnector = FindNearbyOutputConnector(newConnection, currentDragPoint); foreach (ConnectionViewModel con in Connections.Where(c => c.To == newConnection.To && c.From != null).ToList()) { Connections.Remove(con); } if (nearbyConnector == null) { RequestNodePickerWindow(newConnection); // pick return; } if (nearbyConnector == null || sourceConnector.Element == nearbyConnector.Element) { Connections.Remove(newConnection); return; } newConnection.From = nearbyConnector; } }
public ConnectionViewModel(OutputConnectorViewModel from, InputConnectorViewModel to) { From = from; To = to; }
public ConnectionViewModel(InputConnectorViewModel to) { To = to; }
protected void AddInputConnector(string name, IOType iotype, Color color) { var inputConnector = new InputConnectorViewModel(this, iotype, name, color); InputConnectors.Add(inputConnector); }