From 7a328e3de6fa8b8c0b0f2a2fe8837f1f94bae1e7 Mon Sep 17 00:00:00 2001 From: Konstantin Aleev Date: Fri, 22 Mar 2019 12:25:33 +0300 Subject: [PATCH] [service-view] remove master component key --- .../services/ServiceViewManager.java | 3 --- .../dashboard/RunDashboardContent.java | 3 --- .../actions/RemoveConfigurationAction.java | 23 ++++++++++++------- .../execution/services/ServiceView.java | 2 -- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/platform/lang-api/src/com/intellij/execution/services/ServiceViewManager.java b/platform/lang-api/src/com/intellij/execution/services/ServiceViewManager.java index 738b35779b06..9de07b13a70c 100644 --- a/platform/lang-api/src/com/intellij/execution/services/ServiceViewManager.java +++ b/platform/lang-api/src/com/intellij/execution/services/ServiceViewManager.java @@ -3,15 +3,12 @@ package com.intellij.execution.services; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; -import com.intellij.openapi.util.Key; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.concurrency.Promise; @ApiStatus.Experimental public interface ServiceViewManager { - Key SERVICE_VIEW_MASTER_COMPONENT = Key.create("SERVICE_VIEW_MASTER_COMPONENT"); - static ServiceViewManager getInstance(Project project) { return ServiceManager.getService(project, ServiceViewManager.class); } diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardContent.java b/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardContent.java index 653b6947dceb..9582f4d324d5 100644 --- a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardContent.java +++ b/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardContent.java @@ -43,7 +43,6 @@ import com.intellij.ui.content.*; import com.intellij.ui.treeStructure.Tree; import com.intellij.util.ObjectUtils; import com.intellij.util.containers.ContainerUtil; -import com.intellij.util.ui.UIUtil; import com.intellij.util.ui.tree.TreeModelAdapter; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -60,7 +59,6 @@ import java.util.*; import static com.intellij.execution.dashboard.RunDashboardManagerImpl.getRunnerLayoutUi; import static com.intellij.execution.dashboard.RunDashboardRunConfigurationStatus.*; -import static com.intellij.execution.services.ServiceViewManager.SERVICE_VIEW_MASTER_COMPONENT; /** * @author konstantin.aleev @@ -215,7 +213,6 @@ public class RunDashboardContent extends JPanel implements TreeContent, Disposab } return null; }); - UIUtil.putClientProperty(myTree, SERVICE_VIEW_MASTER_COMPONENT, Boolean.TRUE); new DoubleClickListener() { @Override protected boolean onDoubleClick(MouseEvent event) { diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RemoveConfigurationAction.java b/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RemoveConfigurationAction.java index 4e5460cd5bbd..72d06e006c07 100644 --- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RemoveConfigurationAction.java +++ b/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RemoveConfigurationAction.java @@ -19,20 +19,21 @@ import com.intellij.execution.ExecutionBundle; import com.intellij.execution.RunManager; import com.intellij.execution.dashboard.RunDashboardManager; import com.intellij.execution.dashboard.RunDashboardRunConfigurationNode; +import com.intellij.openapi.actionSystem.ActionPlaces; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.ui.content.Content; import com.intellij.util.containers.JBIterable; import com.intellij.util.ui.UIUtil; import org.jetbrains.annotations.NotNull; -import java.awt.*; +import javax.swing.*; import static com.intellij.execution.dashboard.actions.RunDashboardActionUtils.getTargets; -import static com.intellij.execution.services.ServiceViewManager.SERVICE_VIEW_MASTER_COMPONENT; /** * @author konstantin.aleev @@ -46,15 +47,21 @@ public class RemoveConfigurationAction extends AnAction { return; } - Component contextComponent = e.getData(PlatformDataKeys.CONTEXT_COMPONENT); - if (!Boolean.TRUE.equals(UIUtil.getClientProperty(contextComponent, SERVICE_VIEW_MASTER_COMPONENT))) { - e.getPresentation().setEnabledAndVisible(false); - return; - } - JBIterable targets = getTargets(e); RunManager runManager = RunManager.getInstance(project); boolean enabled = targets.isNotEmpty() && targets.filter(node -> !runManager.hasSettings(node.getConfigurationSettings())).isEmpty(); + + if (enabled) { + RunDashboardRunConfigurationNode node = targets.single(); + Content content = node == null ? null : node.getContent(); + JComponent contentComponent = content == null ? null : content.getComponent(); + if (contentComponent != null && ActionPlaces.MAIN_MENU.equals(e.getPlace()) && + UIUtil.isAncestor(content.getComponent(), e.getData(PlatformDataKeys.CONTEXT_COMPONENT))) { + e.getPresentation().setEnabledAndVisible(false); + return; + } + } + e.getPresentation().setEnabled(enabled); e.getPresentation().setVisible(targets.isNotEmpty()); } diff --git a/platform/lang-impl/src/com/intellij/execution/services/ServiceView.java b/platform/lang-impl/src/com/intellij/execution/services/ServiceView.java index 72d9655079b0..e9d43009031c 100644 --- a/platform/lang-impl/src/com/intellij/execution/services/ServiceView.java +++ b/platform/lang-impl/src/com/intellij/execution/services/ServiceView.java @@ -59,7 +59,6 @@ import java.util.List; import java.util.*; import static com.intellij.execution.dashboard.RunDashboardRunConfigurationStatus.*; -import static com.intellij.execution.services.ServiceViewManager.SERVICE_VIEW_MASTER_COMPONENT; import static com.intellij.ui.AnimatedIcon.ANIMATION_IN_RENDERER_ALLOWED; class ServiceView extends JPanel implements Disposable { @@ -155,7 +154,6 @@ class ServiceView extends JPanel implements Disposable { myTree.setLineStyleAngled(); myTree.setCellRenderer(new MyTreeCellRenderer()); UIUtil.putClientProperty(myTree, ANIMATION_IN_RENDERER_ALLOWED, true); - UIUtil.putClientProperty(myTree, SERVICE_VIEW_MASTER_COMPONENT, Boolean.TRUE); // listeners myTree.addTreeSelectionListener(e -> onSelectionChanged());