public override void OnPortDrivesSignalNoLonger(Signal signal, Port port, int outputIndex) { if (maskMDrives) { return; } bool wasMasked = maskNDrives; try { maskNDrives = true; SignalShape ss = _bridge.Signals[signal.InstanceId]; PortShape ps = _bridge.Ports[port.InstanceId]; IConnector sc = ss.InputConnector; IConnector pc = ps.OutputConnectors[outputIndex]; IConnection connection = _bridge.Model.ConnectorHolders[pc.AttachedTo] as IConnection; sc.DetachConnector(connection.From); sc.DetachConnector(connection.To); pc.DetachConnector(connection.From); pc.DetachConnector(connection.To); _bridge.Model.Remove(connection); } finally { maskNDrives = wasMasked; } }
public override void Undo() { parent.DetachConnector(child); }