@Nullable private AbstractTreeNode getSelectedNode() { final TreePath path = myTree.getSelectionPath(); if (path != null) { Object component = path.getLastPathComponent(); if (component instanceof DefaultMutableTreeNode) { component = ((DefaultMutableTreeNode) component).getUserObject(); if (component instanceof FilteringTreeStructure.FilteringNode) { component = ((FilteringTreeStructure.FilteringNode) component).getDelegate(); if (component instanceof AbstractTreeNode) { return (AbstractTreeNode) component; } } } } return null; }