void (@NotNull AnActionEvent e) { final Presentation presentation = e.getPresentation(); final TreePath[] paths = myTree.getSelectionPaths(); if (paths == null) { presentation.setEnabled(false); return; } if (paths.length == 1) { String text = AntBundle.message("remove.meta.target.action.name"); boolean enabled = false; final DefaultMutableTreeNode node = (DefaultMutableTreeNode)paths[0].getLastPathComponent(); if (node.getUserObject() instanceof AntBuildFileNodeDescriptor descriptor) { if (descriptor.getBuildFile().equals(getCurrentBuildFile())) { text = AntBundle.message("remove.selected.build.file.action.name"); enabled = true; } } else { if (node.getUserObject() instanceof AntTargetNodeDescriptor descr) { final AntBuildTargetBase target = descr.getTarget(); if (target instanceof MetaTarget) { enabled = true; } } } presentation.setText(text); presentation.setEnabled(enabled); } else { presentation.setText(AntBundle.messagePointer("remove.selected.meta.targets.action.name")); final AntBuildTarget[] targets = getTargetObjectsFromPaths(paths); boolean enabled = targets.length > 0; for (final AntBuildTarget buildTarget : targets) { if (!(buildTarget instanceof MetaTarget)) { enabled = false; break; } } presentation.setEnabled(enabled); } }