예제 #1
0
        //TODO: create unit tests
        public void OnNodeConnect(object sender, EventArgs e)
        {
            var nodeControl = (NodeControl) sender;

            if (_CurrentConnector == null)
            {
                _CurrentConnector = new Connector(this);
                _CurrentConnector.Delete += OnConnectorDelete;
                _CurrentConnector.SetSourceNode(nodeControl);
            }
            else
            {
                _CurrentConnector.SetTargetNode(nodeControl);
                Controls.Add(_CurrentConnector);

                if (ConnectionAdded != null)
                {
                    var eventArgs = new NodeConnectionEventArgs
                        {
                            SourceNodeId = _CurrentConnector.SourceNodeId,
                            TargetNodeId = _CurrentConnector.TargetNodeId
                        };

                    ConnectionAdded(this, eventArgs);
                }

                StopNodeConnector();
            }
        }
예제 #2
0
        public void OnConnectorDelete_WithConnectionRemovedHandler()
        {
            //Arrange
            var sourceNode = Guid.NewGuid();
            var targetNode = Guid.NewGuid();
            var sourceNodeControl = new Mock<INodeControlView>();
            sourceNodeControl.SetupGet(n => n.NodeId).Returns(sourceNode);
            sourceNodeControl.SetupGet(n => n.CenterPosition).Returns(new Point());
            var targetNodeControl = new Mock<INodeControlView>();
            targetNodeControl.SetupGet(n => n.NodeId).Returns(targetNode);
            targetNodeControl.SetupGet(n => n.CenterPosition).Returns(new Point());
            var connector = new Connector(_control);
            connector.SetSourceNode(sourceNodeControl.Object);
            connector.SetTargetNode(targetNodeControl.Object);
            NodeConnectionEventArgs eventArgs = null;
            _control.ConnectionRemoved += (sender, args) => eventArgs = args;

            //Act
            _control.OnConnectorDelete(connector, EventArgs.Empty);

            //Assert
            Assert.IsNotNull(eventArgs);
            Assert.AreEqual(sourceNode, eventArgs.SourceNodeId);
            Assert.AreEqual(targetNode, eventArgs.TargetNodeId);
        }
예제 #3
0
        public void DataBind(NetworkMapModel model)
        {
            if (model == null || model.Nodes == null)
                return;

            var nodeControls = new List<NodeControl>();
            foreach (var node in model.Nodes)
            {
                var nodeControl = CreateNodeControl(node);
                nodeControls.Add(nodeControl);
                Controls.Add(nodeControl);
            }

            if (model.Connections == null)
                return;

            foreach (var connection in model.Connections)
            {
                var sourceControl = nodeControls.FirstOrDefault(n => n.NodeId == connection.SourceNodeId);
                var targetControl = nodeControls.FirstOrDefault(n => n.NodeId == connection.TargetNodeId);
                if (sourceControl == null || targetControl == null)
                    continue;

                var connector = new Connector(this);
                connector.SetSourceNode(sourceControl);
                connector.SetTargetNode(targetControl);
                connector.Delete += OnConnectorDelete;
                Controls.Add(connector);
            }
        }