Ejemplo n.º 1
0
 void diagramView_ConnectorDragEnd(object sender, ConnDragEndRoutedEventArgs evtArgs)
 {
     foreach (Node n in diagramModel.Nodes)
     {
         n.IsDragConnectionOver = false;
     }
 }
Ejemplo n.º 2
0
        //Event for changing the LineStyle of the Lien/connector
        void diagramView_AfterConnectionCreate(object sender, ConnDragEndRoutedEventArgs evtArgs)
        {
            LineConnector line = evtArgs.Connector;

            line.LineStyle.Stroke          = Brushes.Black;
            line.LineStyle.StrokeThickness = 2;
            line.TailDecoratorShape        = DecoratorShape.None;
        }
Ejemplo n.º 3
0
        //Revert chages if it is an invalid connection
        void diagramView_ConnectorDragEnd(object sender, ConnDragEndRoutedEventArgs evtArgs)
        {
            if (!newConnDropped)
            {
                //If HeadNode or HeadPort is changed
                if (isHead)
                {
                    //Revert changes if it is an invalid connection
                    if (evtArgs.Connector.HeadNode != null && evtArgs.Connector.ConnectionHeadPort != null)
                    {
                        if (!(evtArgs.Connector.ConnectionHeadPort.Tag as string).Contains("In"))
                        {
                            evtArgs.Connector.HeadNode           = oldNode;
                            evtArgs.Connector.ConnectionHeadPort = oldPort;
                        }
                    }
                    else
                    {
                        evtArgs.Connector.HeadNode           = oldNode;
                        evtArgs.Connector.ConnectionHeadPort = oldPort;
                    }
                }
                //If TailNode or TailPort is Changed
                if (!isHead)
                {
                    //Revert changes if it is an invalid connection
                    if (evtArgs.Connector.TailNode != null && evtArgs.Connector.ConnectionTailPort != null)
                    {
                        if (!(evtArgs.Connector.ConnectionTailPort.Tag as string).Contains("Out"))
                        {
                            evtArgs.Connector.TailNode           = oldNode;
                            evtArgs.Connector.ConnectionTailPort = oldPort;
                        }
                    }
                    else
                    {
                        evtArgs.Connector.TailNode           = oldNode;
                        evtArgs.Connector.ConnectionTailPort = oldPort;
                    }
                }
            }
            //If new connection  is created
            else
            {
                //If it is an invalid connection delete it.
                LineConnector DroppedConnector = evtArgs.Connector;
                if (DroppedConnector.HeadNode != null && DroppedConnector.ConnectionHeadPort != null)
                {
                    if (!(DroppedConnector.ConnectionHeadPort.Tag as string).Contains("Out"))
                    {
                        diagramControl.Model.Connections.Remove(DroppedConnector);
                    }
                }
                else
                {
                    diagramControl.Model.Connections.Remove(DroppedConnector);
                }

                if (DroppedConnector.TailNode != null && DroppedConnector.ConnectionTailPort != null)
                {
                    if (!(DroppedConnector.ConnectionTailPort.Tag as string).Contains("In"))
                    {
                        diagramControl.Model.Connections.Remove(DroppedConnector);
                    }
                }
                else
                {
                    diagramControl.Model.Connections.Remove(DroppedConnector);
                }
            }
            newConnDropped = false;
        }