void () { CheckedTreeNode node = getSelectedToolNode(); if (node != null && node.getUserObject() instanceof Tool) { T selected = (T)node.getUserObject(); if (selected != null) { String oldGroupName = selected.getGroup(); ToolEditorDialog dlg = createToolEditorDialog(ToolsBundle.message("tools.edit.title")); dlg.setData(selected, getGroups()); if (dlg.showAndGet()) { selected.copyFrom(dlg.getData()); String newGroupName = selected.getGroup(); if (!Objects.equals(oldGroupName, newGroupName)) { CheckedTreeNode oldGroupNode = (CheckedTreeNode)node.getParent(); removeNodeFromParent(node); ((ToolsGroup<T>)oldGroupNode.getUserObject()).removeElement(selected); if (oldGroupNode.getChildCount() == 0) { removeNodeFromParent(oldGroupNode); } insertNewTool(selected, true); } else { (getModel()).nodeChanged(node); } myIsModified = true; update(); } } } }