public override void switchNetwork(Network from, Network to, bool silently) { String conflict = to.nameConflictExists(this, LabelString); String new_name = ""; bool name_change_required = false; if (conflict != null) { new_name = String.Format("wireless_{0}", InstanceNumber); name_change_required = true; } List<Node> rnl = to.makeClassifiedNodeList(typeof(TransmitterNode), false); String cp = (name_change_required ? new_name : LabelString); if (rnl != null) { foreach (Node n in rnl) { ReceiverNode rn = (ReceiverNode)n; if (!rn.IsTransmitterConnected && rn.LabelString == cp) { if (to.checkForCycle(this, rn)) { new_name = String.Format("cyclic_connection_{0}", InstanceNumber); name_change_required = true; break; } } } } if (name_change_required) { if (!silently) { InfoDialog id = new InfoDialog(); id.post("Transmitter {0} has been relabled {1}", LabelString, new_name); } setLabelString(new_name); } rnl = to.makeClassifiedNodeList(typeof(ReceiverNode), false); if (rnl != null) { foreach (Node n in rnl) { ReceiverNode rn = (ReceiverNode)n; if (!rn.IsTransmitterConnected && rn.LabelString == LabelString) { new Ark(this, 0, rn, 0); } } } base.switchNetwork(from, to, silently); }