void (@NotNull AnActionEvent e) { Project project = e.getProject(); if (project == null) { update(e, false); return; } JBIterable<RunDashboardRunConfigurationNode> targetNodes = getLeafTargets(e); boolean running = targetNodes.filter(node -> { Content content = node.getContent(); return content != null && !RunContentManagerImpl.isTerminated(content); }).isNotEmpty(); update(e, running); List<RunDashboardRunConfigurationNode> runnableLeaves = targetNodes.filter(this::canRun).toList(); Presentation presentation = e.getPresentation(); if (!runnableLeaves.isEmpty()) { presentation.putClientProperty(RUNNABLE_LEAVES_KEY, runnableLeaves); } presentation.setEnabled(!runnableLeaves.isEmpty()); presentation.setVisible(targetNodes.isNotEmpty()); }