Beispiel #1
0
        public void Handle(RectangleClickMessage message)
        {
            var rectangle = message.Rectangle;

            if (!_isConnecting)
            {
                _isConnecting    = true;
                _sourceRectangle = rectangle;

                if (_sourceRectangle.IsConnected)
                {
                    RemoveExistingConnection(_sourceRectangle);
                }

                StartDrawingLine(_sourceRectangle);
            }
            else
            {
                _isConnecting         = false;
                _destinationRectangle = rectangle;

                if (ConnectionNotPossible(rectangle))
                {
                    CancelDrawingLine();
                    return;
                }

                if (_destinationRectangle.IsConnected)
                {
                    RemoveExistingConnection(_destinationRectangle);
                }

                AddConnection(_sourceRectangle, _destinationRectangle, _line);
            }
        }
        public void Rectangle_MouseLeftButtonDown(object sender, RoutedEventArgs e)
        {
            var message = new RectangleClickMessage()
            {
                Rectangle = this,
            };

            _eventAggregator.PublishOnUIThread(message);
        }