### Eclipse Workspace Patch 1.0 #P JMapViewer Index: src/org/openstreetmap/gui/jmapviewer/checkBoxTree/CheckBoxNodeEditor.java =================================================================== --- src/org/openstreetmap/gui/jmapviewer/checkBoxTree/CheckBoxNodeEditor.java (revision 36494) +++ src/org/openstreetmap/gui/jmapviewer/checkBoxTree/CheckBoxNodeEditor.java (working copy) @@ -25,6 +25,9 @@ private final CheckBoxNodeRenderer renderer = new CheckBoxNodeRenderer(); private final CheckBoxTree theTree; + + // Use the listener field to allow for targeted removal later. + private final ItemListener stopEditingListener = e -> stopCellEditing(); public CheckBoxNodeEditor(final CheckBoxTree tree) { theTree = tree; @@ -82,6 +85,7 @@ renderer.getTreeCellRendererComponent(tree, value, true, expanded, leaf, row, true); + /* // editor always selected / focused final ItemListener itemListener = itemEvent -> { if (stopCellEditing()) { @@ -88,9 +92,12 @@ fireEditingStopped(); } }; + */ if (editor instanceof CheckBoxNodePanel) { final CheckBoxNodePanel panel = (CheckBoxNodePanel) editor; - panel.check.addItemListener(itemListener); + // Remove the old listener before adding a new one (or the same one) to prevent multiple calls. + panel.check.removeItemListener(stopEditingListener); + panel.check.addItemListener(stopEditingListener); } return editor;