private void RemovePort(OutputPort port) { CodeGraph.Instance.InvalidateSaveButton(); var connectionsToRemove = new List <Edge>(); connectionsToRemove.AddRange(port.PortReference.connections); while (connectionsToRemove.Count > 0) { var conn = connectionsToRemove[0]; CodeGraph.Instance.GraphView.RemoveElement(conn); conn.input.Disconnect(conn); conn.output.Disconnect(conn); // conn = null; connectionsToRemove.RemoveAt(0); } outputContainer.Remove(port.PortReference); OutputPorts.Remove(port); EventPorts.Remove(port); OutputPortDictionary.Remove(port.PortReference); port.PortReference = null; PortCount--; FixPortNames(); Refresh(); }
public void AddChildPort(bool incrementPortCount = true) { CodeGraph.Instance.InvalidateSaveButton(); var outputPort = base.InstantiatePort(Orientation.Horizontal, Direction.Output, Port.Capacity.Single, typeof(float)); outputPort.name = $"EventPort {EventPorts.Count + 1}"; outputPort.portName = $"child {EventPorts.Count + 1}"; outputPort.portColor = new Color(1, 1, 1, 0.2f); // AddOutputPort(outputPort, () => ""); var outputPortObj = new OutputPort(this, outputPort, () => ""); OutputPorts.Add(outputPortObj); EventPorts.Add(outputPortObj); OutputPortDictionary.Add(outputPort, outputPortObj); outputPort.contentContainer.Add(new Button(() => { RemovePort(outputPortObj); }) { text = "X" }); outputContainer.Add(outputPort); if (incrementPortCount) { PortCount++; } Refresh(); }
private new void AddOutputPort(Port portReference, Func <string> getCode, bool alsoAddToHierarchy = true) { var outputPort = new OutputPort(this, portReference, getCode); OutputPorts.Add(outputPort); OutputPortDictionary.Add(portReference, outputPort); if (alsoAddToHierarchy) { outputContainer.Add(portReference); } }
public void CleanPorts() { CodeGraph.Instance.InvalidateSaveButton(); var portsToRemove = new List <OutputPort>(); (from port in EventPorts let portConnections = port.PortReference.connections.ToList() where portConnections.Count == 0 select port).ToList() .ForEach(port => { outputContainer.Remove(port.PortReference); portsToRemove.Add(port); PortCount--; }); portsToRemove.ForEach(p => { OutputPorts.Remove(p); EventPorts.Remove(p); OutputPortDictionary.Remove(p.PortReference); p.PortReference = null; }); FixPortNames(); Refresh(); }