public CanvasPoint BeginLinkage(PinViewModel pinViewModel) { _currentUnfinishedLink = new LinkViewModel(pinViewModel, null, ControlTypesResolver); _linkViewModels.Add(_currentUnfinishedLink); return(_currentUnfinishedLink.EndPoint); }
public CanvasPoint BeginLinkage(PinViewModel pinViewModel) { _currentUnfinishedLink = new LinkViewModel(pinViewModel, null, ControlTypesResolver); _linkViewModels.Add(_currentUnfinishedLink); return _currentUnfinishedLink.EndPoint; }
public void Link(Node sourceNode, IPin sourcePin, Node targetNode, IPin targetPin) { var linkViewModel = new LinkViewModel( GetNodeViewModel(sourceNode).GetPinViewModel(sourcePin), GetNodeViewModel(targetNode).GetPinViewModel(targetPin), ControlTypesResolver); _linkViewModels.Add(linkViewModel); }
public CanvasPoint BeginRelinkage(PinViewModel pinViewModel) { _currentUnfinishedLink = _linkViewModels.First(model => model.TargetPinViewModel == pinViewModel); _currentUnfinishedLink.TargetPinViewModel = null; var canvasPoint = new CanvasPoint(); _currentUnfinishedLink.EndPoint = canvasPoint; return(canvasPoint); }
public void EndLinkage(PinViewModel pinViewModel) { if (_currentUnfinishedLink != null) { var success = false; if (_currentUnfinishedLink.TargetPinViewModel == null) { // Can't link to nowhere if (pinViewModel != null) { // Can't link input<->input if (pinViewModel.Pin.Direction == PinDirection.Input) { // Can't link node to itself if (pinViewModel.NodeViewModel != _currentUnfinishedLink.SourcePinViewModel.NodeViewModel) { // Hurray! Successfully linked! // Cleanup previous loosers foreach (var linkViewModel in _linkViewModels.Where(model => model.TargetPinViewModel == pinViewModel).ToArray()) { Node.Unlink(linkViewModel.TargetPinViewModel.NodeViewModel.Node, linkViewModel.TargetPinViewModel.Pin); _linkViewModels.Remove(linkViewModel); } _currentUnfinishedLink.TargetPinViewModel = pinViewModel; Node.Link( _currentUnfinishedLink.SourcePinViewModel.NodeViewModel.Node, _currentUnfinishedLink.SourcePinViewModel.Pin, pinViewModel.NodeViewModel.Node, pinViewModel.Pin); pinViewModel.NodeViewModel.Node.Pulse(); success = true; } } } } if (!success) { _linkViewModels.Remove(_currentUnfinishedLink); } _currentUnfinishedLink = null; } }
public CanvasPoint BeginRelinkage(PinViewModel pinViewModel) { _currentUnfinishedLink = _linkViewModels.First(model => model.TargetPinViewModel == pinViewModel); _currentUnfinishedLink.TargetPinViewModel = null; var canvasPoint = new CanvasPoint(); _currentUnfinishedLink.EndPoint = canvasPoint; return canvasPoint; }
public void Link(Node sourceNode, IPin sourcePin, Node targetNode, IPin targetPin) { var linkViewModel = new LinkViewModel( GetNodeViewModel(sourceNode).GetPinViewModel(sourcePin), GetNodeViewModel(targetNode).GetPinViewModel(targetPin), ControlTypesResolver); _linkViewModels.Add(linkViewModel); }
public void EndLinkage(PinViewModel pinViewModel) { if (_currentUnfinishedLink != null) { var success = false; if (_currentUnfinishedLink.TargetPinViewModel == null) { // Can't link to nowhere if (pinViewModel != null) { // Can't link input<->input if (pinViewModel.Pin.Direction == PinDirection.Input) { // Can't link node to itself if (pinViewModel.NodeViewModel != _currentUnfinishedLink.SourcePinViewModel.NodeViewModel) { // Hurray! Successfully linked! // Cleanup previous loosers foreach (var linkViewModel in _linkViewModels.Where(model => model.TargetPinViewModel == pinViewModel).ToArray()) { Node.Unlink(linkViewModel.TargetPinViewModel.NodeViewModel.Node, linkViewModel.TargetPinViewModel.Pin); _linkViewModels.Remove(linkViewModel); } _currentUnfinishedLink.TargetPinViewModel = pinViewModel; Node.Link( _currentUnfinishedLink.SourcePinViewModel.NodeViewModel.Node, _currentUnfinishedLink.SourcePinViewModel.Pin, pinViewModel.NodeViewModel.Node, pinViewModel.Pin); pinViewModel.NodeViewModel.Node.Pulse(); success = true; } } } } if (!success) { _linkViewModels.Remove(_currentUnfinishedLink); } _currentUnfinishedLink = null; } }