boolean (EventObject anEvent) { if (anEvent instanceof MouseEvent me) { final TreePath path = myTree.getClosestPathForLocation(me.getX(), me.getY()); final int row = myTree.getRowForLocation(me.getX(), me.getY()); myTree.getCellRenderer().getTreeCellRendererComponent(myTree, path.getLastPathComponent(), false, false, true, row, true); Object tag = me.getClickCount() >= 1 ? PushLogTreeUtil.getTagAtForRenderer(myTreeCellRenderer, me) : null; return tag instanceof VcsEditableComponent; } //if keyboard event - then anEvent will be null =( See BasicTreeUi TreePath treePath = myTree.getAnchorSelectionPath(); //there is no selection path if we start editing during initial validation// if (treePath == null) return true; Object treeNode = treePath.getLastPathComponent(); return treeNode instanceof EditableTreeNode && ((EditableTreeNode)treeNode).isEditableNow(); }