void (@NotNull AnActionEvent e) { final DebuggerTreeNodeImpl[] selectedNodes = getSelectedNodes(e.getDataContext()); boolean visible = false; boolean enabled = false; if (selectedNodes != null && selectedNodes.length > 0) { visible = true; enabled = true; for (DebuggerTreeNodeImpl selectedNode : selectedNodes) { final NodeDescriptorImpl threadDescriptor = selectedNode.getDescriptor(); if (!(threadDescriptor instanceof ThreadDescriptorImpl)) { visible = false; break; } } if (visible) { for (DebuggerTreeNodeImpl selectedNode : selectedNodes) { final ThreadDescriptorImpl threadDescriptor = (ThreadDescriptorImpl)selectedNode.getDescriptor(); if (threadDescriptor.isFrozen() || threadDescriptor.isSuspended()) { enabled = false; break; } } } } final Presentation presentation = e.getPresentation(); presentation.setText(JavaDebuggerBundle.messagePointer("action.interrupt.thread.text")); presentation.setEnabledAndVisible(visible && enabled); }