/// <summary> /// Updates the dictionaries based on the new names of the inputs/outputs /// </summary> /// <param name="newNameDict">Dictionary of old name keys to new name values</param> private void truthTableWindow_RelabelStrokes(Dictionary <Shape, string> newNameDict) { foreach (KeyValuePair <Shape, string> pair in newNameDict) { Shape s = pair.Key; string newName = pair.Value; s.Name = newName; } // Update popup names cleanCircuit.UpdateLabel(newNameDict); ShowToggles(); }
/// <summary> /// Updates the dictionaries based on the new names of the inputs/outputs /// </summary> /// <param name="newNameDict">Dictionary of old name keys to new name values</param> private void truthTableWindow_RelabelStrokes(Dictionary <string, string> newNameDict) { foreach (string s in newNameDict.Keys) { // Change the shape names that were affected foreach (Shape shape in sketch.Shapes) { if (shape.Name == s) { shape.Name = newNameDict[s]; } } // Update all the dictionaries if (inputMapping.ContainsKey(s)) { ListSet <string> values = inputMapping[s]; LabelShape(values, newNameDict[s]); inputMapping.Remove(s); inputMapping.Add(newNameDict[s], values); } else if (outputMapping.ContainsKey(s)) { ListSet <string> values = outputMapping[s]; LabelShape(values, newNameDict[s]); outputMapping.Remove(s); outputMapping.Add(newNameDict[s], values); } if (wireToInputGateMapping.ContainsKey(s)) { Dictionary <int, ListSet <string> > values = wireToInputGateMapping[s]; wireToInputGateMapping.Remove(s); wireToInputGateMapping.Add(newNameDict[s], values); } } // Create our new Circuit if (!circuitParser.SuccessfullyParse(sketchPanel.Sketch)) { return; } sketchPanel.Circuit = new Circuit(circuitParser.CircuitStructure, circuitParser.CircuitOutputs, circuitParser.CircuitInputs); // Update popup names circuitValuePopups.UpdatePopupNames(newNameDict); cleanCircuit.UpdateLabel(newNameDict); ShowToggles(); }