public void setTool(Tool value) {
if (tool == value) return;
Tool old = tool;
Canvas canvas = frame.getCanvas();
if (old != null) old.deselect(canvas);
Selection selection = canvas.getSelection();
if (selection != null && !selection.isEmpty()) {
Circuit circuit = canvas.getCircuit();
CircuitMutation xn = new CircuitMutation(circuit);
if (value == null) {