TUM.CMS.VplControl.Core.Connector.Delete C# (CSharp) Method

Delete() public method

public Delete ( ) : void
return void
        public void Delete()
        {
            RemoveFromCanvas();

            StartPort.ConnectedConnectors.Remove(this);
            EndPort.ConnectedConnectors.Remove(this);

            EndPort.CalculateData();
        }

Usage Example

Esempio n. 1
0
        private void Port_MouseDown(object sender, MouseButtonEventArgs e)
        {
            switch (hostCanvas.SplineMode)
            {
            case SplineModes.Nothing:

                if (PortType == PortTypes.Input && !MultipleConnectionsAllowed && ConnectedConnectors.Count > 0)
                {
                    Connector conn = ConnectedConnectors[0];
                    conn.Delete();
                    hostCanvas.TempStartPort = conn.StartPort;
                }
                else
                {
                    hostCanvas.TempStartPort = this;
                }

                hostCanvas.SplineMode = SplineModes.Second;
                break;

            case SplineModes.Second:
                if (
                    (
                        hostCanvas.TempStartPort.DataType.IsCastableTo(DataType) &&
                        hostCanvas.TypeSensitive && PortType == PortTypes.Output
                        ||
                        DataType.IsCastableTo(hostCanvas.TempStartPort.DataType) &&
                        hostCanvas.TypeSensitive && PortType == PortTypes.Input // data types matching
                        ||
                        !hostCanvas.TypeSensitive                               // data types must not match
                    ) &&
                    PortType != hostCanvas.TempStartPort.PortType
                    // is not same port type --> input to output or output to input
                    && !Equals(ParentNode, hostCanvas.TempStartPort.ParentNode))     // is not same node
                {
                    Connector connector;

                    if (PortType == PortTypes.Output)
                    {
                        if (hostCanvas.TempStartPort.ConnectedConnectors.Count > 0)
                        {
                            if (!hostCanvas.TempStartPort.MultipleConnectionsAllowed)
                            {
                                foreach (var tempConnector in hostCanvas.TempStartPort.ConnectedConnectors)
                                {
                                    tempConnector.RemoveFromCanvas();
                                }

                                hostCanvas.TempStartPort.ConnectedConnectors.Clear();
                            }
                        }

                        connector = new Connector(hostCanvas, this, hostCanvas.TempStartPort);
                    }
                    else
                    {
                        if (ConnectedConnectors.Count > 0)
                        {
                            if (!MultipleConnectionsAllowed)
                            {
                                foreach (var tempConnector in ConnectedConnectors)
                                {
                                    tempConnector.RemoveFromCanvas();
                                }

                                ConnectedConnectors.Clear();
                            }
                        }

                        connector = new Connector(hostCanvas, hostCanvas.TempStartPort, this);
                    }


                    connector.SynchroniseAfterZoom();
                    hostCanvas.ConnectorCollection.Add(connector);
                }


                hostCanvas.SplineMode = SplineModes.Nothing;
                hostCanvas.ClearTempLine();
                break;
            }

            e.Handled = true;
        }