@Override public Component getTreeCellEditorComponent( final JTree tree, final Object value, final boolean selected, final boolean expanded, final boolean leaf, final int row) { final Component editor = renderer.getTreeCellRendererComponent(tree, value, true, expanded, leaf, row, true); // editor always selected / focused final ItemListener itemListener = new ItemListener() { @Override public void itemStateChanged(final ItemEvent itemEvent) { if (stopCellEditing()) { fireEditingStopped(); } } }; if (editor instanceof CheckBoxNodePanel) { final CheckBoxNodePanel panel = (CheckBoxNodePanel) editor; panel.check.addItemListener(itemListener); } return editor; }
@Override public Object getCellEditorValue() { final CheckBoxNodePanel panel = renderer.getPanel(); final CheckBoxNodeData checkBoxNode = new CheckBoxNodeData(panel.label.getText(), panel.check.isSelected()); return checkBoxNode; }