diff --git a/.idea/modules.xml b/.idea/modules.xml
index 38d7655e9578..74d8c47bc0bf 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -660,6 +660,7 @@
+
diff --git a/platform/execution.dashboard/api-dump.txt b/platform/execution.dashboard/api-dump.txt
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/platform/execution.dashboard/intellij.platform.execution.dashboard.iml b/platform/execution.dashboard/intellij.platform.execution.dashboard.iml
new file mode 100644
index 000000000000..c23248fefa61
--- /dev/null
+++ b/platform/execution.dashboard/intellij.platform.execution.dashboard.iml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/platform/execution.dashboard/resources/intellij.platform.execution.dashboard.xml b/platform/execution.dashboard/resources/intellij.platform.execution.dashboard.xml
new file mode 100644
index 000000000000..d6bc1b058e56
--- /dev/null
+++ b/platform/execution.dashboard/resources/intellij.platform.execution.dashboard.xml
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/platform/lang-api/src/com/intellij/execution/dashboard/PanelContentUI.java b/platform/execution.dashboard/src/PanelContentUI.java
similarity index 96%
rename from platform/lang-api/src/com/intellij/execution/dashboard/PanelContentUI.java
rename to platform/execution.dashboard/src/PanelContentUI.java
index a82c6f9953e2..9a79d840aef2 100644
--- a/platform/lang-api/src/com/intellij/execution/dashboard/PanelContentUI.java
+++ b/platform/execution.dashboard/src/PanelContentUI.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard;
import com.intellij.openapi.util.Conditions;
import com.intellij.ui.ComponentUtil;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardCheckerActivity.kt b/platform/execution.dashboard/src/RunDashboardCheckerActivity.kt
similarity index 96%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardCheckerActivity.kt
rename to platform/execution.dashboard/src/RunDashboardCheckerActivity.kt
index 4c52ee2be5d4..d2859f1746d4 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardCheckerActivity.kt
+++ b/platform/execution.dashboard/src/RunDashboardCheckerActivity.kt
@@ -1,10 +1,12 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard
import com.intellij.execution.ExecutionBundle
import com.intellij.execution.RunManagerListener
import com.intellij.execution.RunnerAndConfigurationSettings
import com.intellij.execution.configurations.ConfigurationType
+import com.intellij.execution.dashboard.RunDashboardChecker
+import com.intellij.execution.dashboard.RunDashboardManager
import com.intellij.icons.AllIcons
import com.intellij.ide.util.PropertiesComponent
import com.intellij.notification.Notification
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardComponentWrapper.java b/platform/execution.dashboard/src/RunDashboardComponentWrapper.java
similarity index 88%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardComponentWrapper.java
rename to platform/execution.dashboard/src/RunDashboardComponentWrapper.java
index 57c9b18694ed..d09bc67f7a05 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardComponentWrapper.java
+++ b/platform/execution.dashboard/src/RunDashboardComponentWrapper.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Key;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardManagerImpl.java b/platform/execution.dashboard/src/RunDashboardManagerImpl.java
similarity index 98%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardManagerImpl.java
rename to platform/execution.dashboard/src/RunDashboardManagerImpl.java
index ff09c0221ccd..b8eba102ca96 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardManagerImpl.java
+++ b/platform/execution.dashboard/src/RunDashboardManagerImpl.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard;
import com.google.common.collect.Sets;
import com.intellij.execution.*;
@@ -7,8 +7,7 @@ import com.intellij.execution.configurations.ConfigurationType;
import com.intellij.execution.configurations.ConfigurationTypeUtil;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.execution.configurations.RunProfile;
-import com.intellij.execution.dashboard.tree.RunConfigurationNode;
-import com.intellij.execution.dashboard.tree.RunDashboardStatusFilter;
+import com.intellij.execution.dashboard.*;
import com.intellij.execution.impl.ExecutionManagerImpl;
import com.intellij.execution.impl.RunManagerImpl;
import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl;
@@ -40,6 +39,8 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Condition;
import com.intellij.openapi.wm.ToolWindowId;
+import com.intellij.platform.execution.dashboard.tree.RunConfigurationNode;
+import com.intellij.platform.execution.dashboard.tree.RunDashboardStatusFilter;
import com.intellij.ui.ClientProperty;
import com.intellij.ui.IdeBorderFactory;
import com.intellij.ui.SideBorder;
@@ -63,7 +64,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.function.Predicate;
import java.util.stream.Collectors;
-import static com.intellij.execution.dashboard.RunDashboardServiceViewContributor.RUN_DASHBOARD_CONTENT_TOOLBAR;
+import static com.intellij.platform.execution.dashboard.RunDashboardServiceViewContributor.RUN_DASHBOARD_CONTENT_TOOLBAR;
@State(name = "RunDashboard", storages = @Storage(StoragePathMacros.WORKSPACE_FILE))
public final class RunDashboardManagerImpl implements RunDashboardManager, PersistentStateComponent {
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardServiceViewContributor.java b/platform/execution.dashboard/src/RunDashboardServiceViewContributor.java
similarity index 95%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardServiceViewContributor.java
rename to platform/execution.dashboard/src/RunDashboardServiceViewContributor.java
index 3cc363f4de86..59dcb6762e25 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardServiceViewContributor.java
+++ b/platform/execution.dashboard/src/RunDashboardServiceViewContributor.java
@@ -1,17 +1,15 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard;
import com.intellij.execution.RunManager;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.actions.StopAction;
import com.intellij.execution.configurations.ConfigurationType;
import com.intellij.execution.configurations.RunConfiguration;
+import com.intellij.execution.dashboard.RunDashboardNode;
+import com.intellij.execution.dashboard.*;
import com.intellij.execution.dashboard.actions.ExecutorAction;
-import com.intellij.execution.dashboard.tree.FolderDashboardGroupingRule.FolderDashboardGroup;
-import com.intellij.execution.dashboard.tree.GroupingNode;
-import com.intellij.execution.dashboard.tree.RunConfigurationNode;
-import com.intellij.execution.dashboard.tree.RunDashboardGroupImpl;
-import com.intellij.execution.dashboard.tree.RunDashboardStatusFilter;
+import com.intellij.execution.dashboard.actions.RunDashboardGroupNode;
import com.intellij.execution.impl.RunManagerImpl;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.execution.runners.FakeRerunAction;
@@ -35,6 +33,11 @@ import com.intellij.openapi.util.NlsSafe;
import com.intellij.openapi.util.NullableLazyValue;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.platform.execution.dashboard.tree.FolderDashboardGroupingRule.FolderDashboardGroup;
+import com.intellij.platform.execution.dashboard.tree.GroupingNode;
+import com.intellij.platform.execution.dashboard.tree.RunConfigurationNode;
+import com.intellij.platform.execution.dashboard.tree.RunDashboardGroupImpl;
+import com.intellij.platform.execution.dashboard.tree.RunDashboardStatusFilter;
import com.intellij.pom.Navigatable;
import com.intellij.psi.PsiElement;
import com.intellij.psi.util.PsiUtilCore;
@@ -53,7 +56,8 @@ import javax.swing.*;
import java.util.*;
public final class RunDashboardServiceViewContributor
- implements ServiceViewGroupingContributor {
+ implements ServiceViewGroupingContributor,
+ RunDashboardGroupNode {
@NonNls static final String RUN_DASHBOARD_CONTENT_TOOLBAR = "RunDashboardContentToolbar";
@@ -109,6 +113,12 @@ public final class RunDashboardServiceViewContributor
return new RunDashboardGroupViewDescriptor(node);
}
+ @Override
+ public @NotNull List<@NotNull Object> getChildren(@NotNull Project project, @NotNull AnActionEvent e) {
+ return ((ServiceViewManagerImpl)ServiceViewManager.getInstance(project))
+ .getChildrenSafe(e, List.of(this), RunDashboardServiceViewContributor.class);
+ }
+
private static ActionGroup getToolbarActions(@Nullable RunContentDescriptor descriptor) {
DefaultActionGroup actionGroup = new DefaultActionGroup();
actionGroup.add(ActionManager.getInstance().getAction(RUN_DASHBOARD_CONTENT_TOOLBAR));
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardServiceViewDeleteProvider.java b/platform/execution.dashboard/src/RunDashboardServiceViewDeleteProvider.java
similarity index 88%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardServiceViewDeleteProvider.java
rename to platform/execution.dashboard/src/RunDashboardServiceViewDeleteProvider.java
index edd9566f82cc..bad224034837 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardServiceViewDeleteProvider.java
+++ b/platform/execution.dashboard/src/RunDashboardServiceViewDeleteProvider.java
@@ -1,10 +1,10 @@
-// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-package com.intellij.execution.dashboard;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.configurations.ConfigurationType;
-import com.intellij.execution.dashboard.tree.GroupingNode;
-import com.intellij.execution.dashboard.tree.RunDashboardGroupImpl;
+import com.intellij.execution.dashboard.RunDashboardGroup;
+import com.intellij.execution.dashboard.RunDashboardManager;
import com.intellij.execution.services.ServiceViewContributorDeleteProvider;
import com.intellij.ide.DeleteProvider;
import com.intellij.ide.IdeBundle;
@@ -15,6 +15,8 @@ import com.intellij.openapi.actionSystem.PlatformCoreDataKeys;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.MessageDialogBuilder;
import com.intellij.openapi.ui.Messages;
+import com.intellij.platform.execution.dashboard.tree.GroupingNode;
+import com.intellij.platform.execution.dashboard.tree.RunDashboardGroupImpl;
import com.intellij.util.ObjectUtils;
import com.intellij.util.SmartList;
import com.intellij.util.containers.ContainerUtil;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardUsagesCollector.java b/platform/execution.dashboard/src/RunDashboardUsagesCollector.java
similarity index 96%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardUsagesCollector.java
rename to platform/execution.dashboard/src/RunDashboardUsagesCollector.java
index 9bc8ab677345..0ff9401d86b1 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/RunDashboardUsagesCollector.java
+++ b/platform/execution.dashboard/src/RunDashboardUsagesCollector.java
@@ -1,7 +1,8 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard;
import com.intellij.execution.configurations.ConfigurationType;
+import com.intellij.execution.dashboard.RunDashboardManager;
import com.intellij.execution.impl.statistics.RunConfigurationTypeUsagesCollector;
import com.intellij.internal.statistic.beans.MetricEvent;
import com.intellij.internal.statistic.eventLog.EventLogGroup;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/AddRunConfigurationTypeAction.kt b/platform/execution.dashboard/src/actions/AddRunConfigurationTypeAction.kt
similarity index 97%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/AddRunConfigurationTypeAction.kt
rename to platform/execution.dashboard/src/actions/AddRunConfigurationTypeAction.kt
index f0312662f878..759a5e913997 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/AddRunConfigurationTypeAction.kt
+++ b/platform/execution.dashboard/src/actions/AddRunConfigurationTypeAction.kt
@@ -1,5 +1,5 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions
import com.intellij.execution.ExecutionBundle
import com.intellij.execution.configurations.ConfigurationType
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/ClearContentAction.java b/platform/execution.dashboard/src/actions/ClearContentAction.java
similarity index 90%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/ClearContentAction.java
rename to platform/execution.dashboard/src/actions/ClearContentAction.java
index abd976d06967..53cd93fd79a9 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/ClearContentAction.java
+++ b/platform/execution.dashboard/src/actions/ClearContentAction.java
@@ -1,8 +1,9 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.Executor;
import com.intellij.execution.dashboard.RunDashboardRunConfigurationNode;
+import com.intellij.execution.dashboard.actions.RunDashboardActionUtils;
import com.intellij.execution.ui.RunContentDescriptor;
import com.intellij.execution.ui.RunContentManager;
import com.intellij.execution.ui.RunContentManagerImpl;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/CopyConfigurationAction.java b/platform/execution.dashboard/src/actions/CopyConfigurationAction.java
similarity index 94%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/CopyConfigurationAction.java
rename to platform/execution.dashboard/src/actions/CopyConfigurationAction.java
index 07c97ba60074..6ebf22ef1fb7 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/CopyConfigurationAction.java
+++ b/platform/execution.dashboard/src/actions/CopyConfigurationAction.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.RunManager;
@@ -9,6 +9,7 @@ import com.intellij.execution.configurations.ConfigurationFactory;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.execution.configurations.RunConfigurationBase;
import com.intellij.execution.dashboard.RunDashboardRunConfigurationNode;
+import com.intellij.execution.dashboard.actions.RunDashboardActionUtils;
import com.intellij.execution.impl.RunDialog;
import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl;
import com.intellij.openapi.actionSystem.*;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/DebugAction.java b/platform/execution.dashboard/src/actions/DebugAction.java
similarity index 88%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/DebugAction.java
rename to platform/execution.dashboard/src/actions/DebugAction.java
index 24943aecd6e6..c239dc482df5 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/DebugAction.java
+++ b/platform/execution.dashboard/src/actions/DebugAction.java
@@ -1,9 +1,10 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.Executor;
import com.intellij.execution.ExecutorRegistry;
+import com.intellij.execution.dashboard.actions.ExecutorAction;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.Presentation;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/EditConfigurationAction.java b/platform/execution.dashboard/src/actions/EditConfigurationAction.java
similarity index 89%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/EditConfigurationAction.java
rename to platform/execution.dashboard/src/actions/EditConfigurationAction.java
index 1ae165307b56..9a611bc4dfca 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/EditConfigurationAction.java
+++ b/platform/execution.dashboard/src/actions/EditConfigurationAction.java
@@ -1,9 +1,10 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.RunManager;
import com.intellij.execution.dashboard.RunDashboardRunConfigurationNode;
+import com.intellij.execution.dashboard.actions.RunDashboardActionUtils;
import com.intellij.execution.impl.RunDialog;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.project.Project;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/GroupByConfigurationStatusAction.java b/platform/execution.dashboard/src/actions/GroupByConfigurationStatusAction.java
similarity index 64%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/GroupByConfigurationStatusAction.java
rename to platform/execution.dashboard/src/actions/GroupByConfigurationStatusAction.java
index 0fc8157f9079..92da77179213 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/GroupByConfigurationStatusAction.java
+++ b/platform/execution.dashboard/src/actions/GroupByConfigurationStatusAction.java
@@ -1,7 +1,7 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
-import com.intellij.execution.dashboard.tree.StatusDashboardGroupingRule;
+import com.intellij.platform.execution.dashboard.tree.StatusDashboardGroupingRule;
import org.jetbrains.annotations.NotNull;
final class GroupByConfigurationStatusAction extends RunDashboardGroupingRuleToggleAction {
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/GroupByConfigurationTypeAction.java b/platform/execution.dashboard/src/actions/GroupByConfigurationTypeAction.java
similarity index 58%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/GroupByConfigurationTypeAction.java
rename to platform/execution.dashboard/src/actions/GroupByConfigurationTypeAction.java
index 88686809bdf7..e75500edb86d 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/GroupByConfigurationTypeAction.java
+++ b/platform/execution.dashboard/src/actions/GroupByConfigurationTypeAction.java
@@ -1,7 +1,7 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
-import com.intellij.execution.dashboard.tree.ConfigurationTypeDashboardGroupingRule;
+import com.intellij.platform.execution.dashboard.tree.ConfigurationTypeDashboardGroupingRule;
import org.jetbrains.annotations.NotNull;
final class GroupByConfigurationTypeAction extends RunDashboardGroupingRuleToggleAction {
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/GroupConfigurationsAction.java b/platform/execution.dashboard/src/actions/GroupConfigurationsAction.java
similarity index 94%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/GroupConfigurationsAction.java
rename to platform/execution.dashboard/src/actions/GroupConfigurationsAction.java
index 661f7c96bce2..26ceb05d662e 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/GroupConfigurationsAction.java
+++ b/platform/execution.dashboard/src/actions/GroupConfigurationsAction.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.dashboard.RunDashboardRunConfigurationNode;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/HideConfigurationAction.java b/platform/execution.dashboard/src/actions/HideConfigurationAction.java
similarity index 87%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/HideConfigurationAction.java
rename to platform/execution.dashboard/src/actions/HideConfigurationAction.java
index 0b74529c41be..95516efb7b80 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/HideConfigurationAction.java
+++ b/platform/execution.dashboard/src/actions/HideConfigurationAction.java
@@ -1,16 +1,17 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.execution.dashboard.RunDashboardManager;
-import com.intellij.execution.dashboard.RunDashboardManagerImpl;
import com.intellij.execution.dashboard.RunDashboardRunConfigurationNode;
+import com.intellij.execution.dashboard.actions.RunDashboardActionUtils;
import com.intellij.openapi.actionSystem.ActionUpdateThread;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.Presentation;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
+import com.intellij.platform.execution.dashboard.RunDashboardManagerImpl;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/OpenRunningConfigInNewTabAction.java b/platform/execution.dashboard/src/actions/OpenRunningConfigInNewTabAction.java
similarity index 85%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/OpenRunningConfigInNewTabAction.java
rename to platform/execution.dashboard/src/actions/OpenRunningConfigInNewTabAction.java
index cd852e18f6a9..26ee17d719e9 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/OpenRunningConfigInNewTabAction.java
+++ b/platform/execution.dashboard/src/actions/OpenRunningConfigInNewTabAction.java
@@ -1,13 +1,13 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.dashboard.RunDashboardManager;
-import com.intellij.execution.dashboard.RunDashboardManagerImpl;
import com.intellij.openapi.actionSystem.ActionUpdateThread;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.ToggleAction;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
+import com.intellij.platform.execution.dashboard.RunDashboardManagerImpl;
import org.jetbrains.annotations.NotNull;
final class OpenRunningConfigInNewTabAction extends ToggleAction implements DumbAware {
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RemoveRunConfigurationTypeAction.java b/platform/execution.dashboard/src/actions/RemoveRunConfigurationTypeAction.java
similarity index 94%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/RemoveRunConfigurationTypeAction.java
rename to platform/execution.dashboard/src/actions/RemoveRunConfigurationTypeAction.java
index 0233b6358341..85dde9931aac 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RemoveRunConfigurationTypeAction.java
+++ b/platform/execution.dashboard/src/actions/RemoveRunConfigurationTypeAction.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.configurations.ConfigurationType;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RestoreConfigurationAction.java b/platform/execution.dashboard/src/actions/RestoreConfigurationAction.java
similarity index 93%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/RestoreConfigurationAction.java
rename to platform/execution.dashboard/src/actions/RestoreConfigurationAction.java
index 010f0f649290..6f3a99ae7206 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RestoreConfigurationAction.java
+++ b/platform/execution.dashboard/src/actions/RestoreConfigurationAction.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.RunManager;
import com.intellij.execution.RunnerAndConfigurationSettings;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RestoreHiddenConfigurationsAction.java b/platform/execution.dashboard/src/actions/RestoreHiddenConfigurationsAction.java
similarity index 88%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/RestoreHiddenConfigurationsAction.java
rename to platform/execution.dashboard/src/actions/RestoreHiddenConfigurationsAction.java
index 4f91d52896b0..efdc2a9b4168 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RestoreHiddenConfigurationsAction.java
+++ b/platform/execution.dashboard/src/actions/RestoreHiddenConfigurationsAction.java
@@ -1,13 +1,12 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.configurations.ConfigurationType;
import com.intellij.execution.configurations.RunConfiguration;
-import com.intellij.execution.dashboard.*;
-import com.intellij.execution.dashboard.tree.ConfigurationTypeDashboardGroupingRule;
-import com.intellij.execution.dashboard.tree.GroupingNode;
-import com.intellij.execution.dashboard.tree.RunDashboardGroupImpl;
+import com.intellij.execution.dashboard.RunDashboardManager;
+import com.intellij.execution.dashboard.RunDashboardNode;
+import com.intellij.execution.dashboard.RunDashboardRunConfigurationNode;
import com.intellij.execution.services.ServiceViewActionUtils;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.openapi.actionSystem.ActionPlaces;
@@ -16,6 +15,11 @@ import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.Presentation;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
+import com.intellij.platform.execution.dashboard.RunDashboardManagerImpl;
+import com.intellij.platform.execution.dashboard.RunDashboardServiceViewContributor;
+import com.intellij.platform.execution.dashboard.tree.ConfigurationTypeDashboardGroupingRule;
+import com.intellij.platform.execution.dashboard.tree.GroupingNode;
+import com.intellij.platform.execution.dashboard.tree.RunDashboardGroupImpl;
import com.intellij.util.ObjectUtils;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunAction.java b/platform/execution.dashboard/src/actions/RunAction.java
similarity index 88%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunAction.java
rename to platform/execution.dashboard/src/actions/RunAction.java
index 6fd72fe750e7..095f75a1f230 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunAction.java
+++ b/platform/execution.dashboard/src/actions/RunAction.java
@@ -1,8 +1,9 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.Executor;
+import com.intellij.execution.dashboard.actions.ExecutorAction;
import com.intellij.execution.executors.DefaultRunExecutor;
import com.intellij.icons.AllIcons;
import com.intellij.openapi.actionSystem.AnActionEvent;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardActionPromoter.java b/platform/execution.dashboard/src/actions/RunDashboardActionPromoter.java
similarity index 85%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardActionPromoter.java
rename to platform/execution.dashboard/src/actions/RunDashboardActionPromoter.java
index d0bb18913dcd..c8a9ab0ec265 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardActionPromoter.java
+++ b/platform/execution.dashboard/src/actions/RunDashboardActionPromoter.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.openapi.actionSystem.ActionPromoter;
import com.intellij.openapi.actionSystem.AnAction;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardFilterActionGroup.java b/platform/execution.dashboard/src/actions/RunDashboardFilterActionGroup.java
similarity index 89%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardFilterActionGroup.java
rename to platform/execution.dashboard/src/actions/RunDashboardFilterActionGroup.java
index a89162c15c5e..e620f9309c3a 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardFilterActionGroup.java
+++ b/platform/execution.dashboard/src/actions/RunDashboardFilterActionGroup.java
@@ -1,17 +1,17 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.dashboard.RunDashboardManager;
-import com.intellij.execution.dashboard.RunDashboardManagerImpl;
import com.intellij.execution.dashboard.RunDashboardRunConfigurationStatus;
-import com.intellij.execution.dashboard.RunDashboardServiceViewContributor;
-import com.intellij.execution.dashboard.tree.RunDashboardStatusFilter;
import com.intellij.execution.services.ServiceViewActionUtils;
import com.intellij.execution.services.ServiceViewContributor;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.NlsActions;
+import com.intellij.platform.execution.dashboard.RunDashboardManagerImpl;
+import com.intellij.platform.execution.dashboard.RunDashboardServiceViewContributor;
+import com.intellij.platform.execution.dashboard.tree.RunDashboardStatusFilter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardGroupingRuleToggleAction.java b/platform/execution.dashboard/src/actions/RunDashboardGroupingRuleToggleAction.java
similarity index 91%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardGroupingRuleToggleAction.java
rename to platform/execution.dashboard/src/actions/RunDashboardGroupingRuleToggleAction.java
index 6a5434b5b8e6..e3db4c7b74af 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardGroupingRuleToggleAction.java
+++ b/platform/execution.dashboard/src/actions/RunDashboardGroupingRuleToggleAction.java
@@ -1,7 +1,6 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
-import com.intellij.execution.dashboard.RunDashboardServiceViewContributor;
import com.intellij.execution.services.ServiceEventListener;
import com.intellij.execution.services.ServiceViewActionUtils;
import com.intellij.execution.services.ServiceViewContributor;
@@ -12,6 +11,7 @@ import com.intellij.openapi.actionSystem.Presentation;
import com.intellij.openapi.actionSystem.ToggleAction;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
+import com.intellij.platform.execution.dashboard.RunDashboardServiceViewContributor;
import org.jetbrains.annotations.NotNull;
import java.util.Set;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/StopAction.java b/platform/execution.dashboard/src/actions/StopAction.java
similarity index 94%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/StopAction.java
rename to platform/execution.dashboard/src/actions/StopAction.java
index 4e7cf39b2f7c..6aa8936ef68c 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/StopAction.java
+++ b/platform/execution.dashboard/src/actions/StopAction.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.dashboard.RunDashboardRunConfigurationNode;
import com.intellij.execution.impl.ExecutionManagerImpl;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/UngroupConfigurationsActions.java b/platform/execution.dashboard/src/actions/UngroupConfigurationsActions.java
similarity index 89%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/actions/UngroupConfigurationsActions.java
rename to platform/execution.dashboard/src/actions/UngroupConfigurationsActions.java
index 2e5ed190cbb1..187fa24a5ad1 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/UngroupConfigurationsActions.java
+++ b/platform/execution.dashboard/src/actions/UngroupConfigurationsActions.java
@@ -1,16 +1,16 @@
-// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.actions;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.actions;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.dashboard.RunDashboardManager;
import com.intellij.execution.dashboard.RunDashboardManager.RunDashboardService;
-import com.intellij.execution.dashboard.tree.FolderDashboardGroupingRule;
-import com.intellij.execution.dashboard.tree.GroupingNode;
import com.intellij.execution.impl.RunManagerImpl;
import com.intellij.openapi.actionSystem.ActionUpdateThread;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.Project;
+import com.intellij.platform.execution.dashboard.tree.FolderDashboardGroupingRule;
+import com.intellij.platform.execution.dashboard.tree.GroupingNode;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
diff --git a/platform/execution.dashboard/src/actions/package-info.java b/platform/execution.dashboard/src/actions/package-info.java
new file mode 100644
index 000000000000..8901631072a6
--- /dev/null
+++ b/platform/execution.dashboard/src/actions/package-info.java
@@ -0,0 +1,5 @@
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+@Internal
+package com.intellij.platform.execution.dashboard.actions;
+
+import org.jetbrains.annotations.ApiStatus.Internal;
diff --git a/platform/execution.dashboard/src/package-info.java b/platform/execution.dashboard/src/package-info.java
new file mode 100644
index 000000000000..a728e11c51fb
--- /dev/null
+++ b/platform/execution.dashboard/src/package-info.java
@@ -0,0 +1,5 @@
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+@Internal
+package com.intellij.platform.execution.dashboard;
+
+import org.jetbrains.annotations.ApiStatus.Internal;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/ConfigurationTypeDashboardGroupingRule.java b/platform/execution.dashboard/src/tree/ConfigurationTypeDashboardGroupingRule.java
similarity index 92%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/tree/ConfigurationTypeDashboardGroupingRule.java
rename to platform/execution.dashboard/src/tree/ConfigurationTypeDashboardGroupingRule.java
index c758bf410b00..7d1ce6d74079 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/ConfigurationTypeDashboardGroupingRule.java
+++ b/platform/execution.dashboard/src/tree/ConfigurationTypeDashboardGroupingRule.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.tree;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.tree;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.configurations.ConfigurationType;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/FolderDashboardGroupingRule.java b/platform/execution.dashboard/src/tree/FolderDashboardGroupingRule.java
similarity index 93%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/tree/FolderDashboardGroupingRule.java
rename to platform/execution.dashboard/src/tree/FolderDashboardGroupingRule.java
index f43a8cebefd7..791257cba0cb 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/FolderDashboardGroupingRule.java
+++ b/platform/execution.dashboard/src/tree/FolderDashboardGroupingRule.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.tree;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.tree;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.dashboard.RunDashboardGroup;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/GroupingNode.java b/platform/execution.dashboard/src/tree/GroupingNode.java
similarity index 61%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/tree/GroupingNode.java
rename to platform/execution.dashboard/src/tree/GroupingNode.java
index 0610044f71dd..d4bdceaca268 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/GroupingNode.java
+++ b/platform/execution.dashboard/src/tree/GroupingNode.java
@@ -1,12 +1,17 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.tree;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.tree;
import com.intellij.execution.dashboard.RunDashboardGroup;
import com.intellij.execution.dashboard.RunDashboardNode;
+import com.intellij.execution.dashboard.actions.RunDashboardGroupNode;
+import com.intellij.execution.services.ServiceViewManager;
+import com.intellij.execution.services.ServiceViewManagerImpl;
import com.intellij.ide.projectView.PresentationData;
import com.intellij.ide.util.treeView.AbstractTreeNode;
+import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Pair;
+import com.intellij.platform.execution.dashboard.RunDashboardServiceViewContributor;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
@@ -16,7 +21,9 @@ import java.util.List;
/**
* @author konstantin.aleev
*/
-public final class GroupingNode extends AbstractTreeNode> implements RunDashboardNode {
+public final class GroupingNode extends AbstractTreeNode>
+ implements RunDashboardNode,
+ RunDashboardGroupNode {
private final List> myChildren = new ArrayList<>();
public GroupingNode(Project project, Object parent, RunDashboardGroup group) {
@@ -43,4 +50,10 @@ public final class GroupingNode extends AbstractTreeNode getChildren(@NotNull Project project, @NotNull AnActionEvent e) {
+ return ((ServiceViewManagerImpl)ServiceViewManager.getInstance(project))
+ .getChildrenSafe(e, List.of(this), RunDashboardServiceViewContributor.class);
+ }
}
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/RunConfigurationNode.java b/platform/execution.dashboard/src/tree/RunConfigurationNode.java
similarity index 97%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/tree/RunConfigurationNode.java
rename to platform/execution.dashboard/src/tree/RunConfigurationNode.java
index 51b819ba48fb..42308e503174 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/RunConfigurationNode.java
+++ b/platform/execution.dashboard/src/tree/RunConfigurationNode.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.tree;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.tree;
import com.intellij.execution.Executor;
import com.intellij.execution.RunManager;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/RunDashboardGroupImpl.java b/platform/execution.dashboard/src/tree/RunDashboardGroupImpl.java
similarity index 58%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/tree/RunDashboardGroupImpl.java
rename to platform/execution.dashboard/src/tree/RunDashboardGroupImpl.java
index ebbb0c9a70aa..ae567d8187e1 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/RunDashboardGroupImpl.java
+++ b/platform/execution.dashboard/src/tree/RunDashboardGroupImpl.java
@@ -1,19 +1,5 @@
-/*
- * Copyright 2000-2017 JetBrains s.r.o.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.intellij.execution.dashboard.tree;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.tree;
import com.intellij.execution.dashboard.RunDashboardGroup;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/RunDashboardStatusFilter.java b/platform/execution.dashboard/src/tree/RunDashboardStatusFilter.java
similarity index 90%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/tree/RunDashboardStatusFilter.java
rename to platform/execution.dashboard/src/tree/RunDashboardStatusFilter.java
index 1bf1041f9730..8cd4f306a6f4 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/RunDashboardStatusFilter.java
+++ b/platform/execution.dashboard/src/tree/RunDashboardStatusFilter.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.tree;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.tree;
import com.intellij.execution.dashboard.RunDashboardRunConfigurationNode;
import com.intellij.execution.dashboard.RunDashboardRunConfigurationStatus;
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/StatusDashboardGroupingRule.java b/platform/execution.dashboard/src/tree/StatusDashboardGroupingRule.java
similarity index 92%
rename from platform/lang-impl/src/com/intellij/execution/dashboard/tree/StatusDashboardGroupingRule.java
rename to platform/execution.dashboard/src/tree/StatusDashboardGroupingRule.java
index d434d6ec4bdc..d9ca54561b7b 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/tree/StatusDashboardGroupingRule.java
+++ b/platform/execution.dashboard/src/tree/StatusDashboardGroupingRule.java
@@ -1,5 +1,5 @@
-// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
-package com.intellij.execution.dashboard.tree;
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package com.intellij.platform.execution.dashboard.tree;
import com.intellij.execution.dashboard.RunDashboardGroup;
import com.intellij.execution.dashboard.RunDashboardGroupingRule;
diff --git a/platform/execution.dashboard/src/tree/package-info.java b/platform/execution.dashboard/src/tree/package-info.java
new file mode 100644
index 000000000000..0d4faa222dd5
--- /dev/null
+++ b/platform/execution.dashboard/src/tree/package-info.java
@@ -0,0 +1,5 @@
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+@Internal
+package com.intellij.platform.execution.dashboard.tree;
+
+import org.jetbrains.annotations.ApiStatus.Internal;
diff --git a/platform/lang-impl/api-dump-unreviewed.txt b/platform/lang-impl/api-dump-unreviewed.txt
index c5ce3657285e..153b20bd054b 100644
--- a/platform/lang-impl/api-dump-unreviewed.txt
+++ b/platform/lang-impl/api-dump-unreviewed.txt
@@ -11015,52 +11015,6 @@ c:com.intellij.execution.console.ProcessBackedConsoleExecuteActionHandler
- sendText(java.lang.String):V
- setProcessHandler(com.intellij.execution.process.ProcessHandler):V
- value(com.intellij.execution.console.LanguageConsoleView):Z
-f:com.intellij.execution.dashboard.RunDashboardComponentWrapper
-- com.intellij.ui.components.panels.NonOpaquePanel
-- sf:CONTENT_ID_KEY:com.intellij.openapi.util.Key
-- (com.intellij.openapi.project.Project):V
-- getContentId():java.lang.Integer
-- getProject():com.intellij.openapi.project.Project
-- setContentId(java.lang.Integer):V
-f:com.intellij.execution.dashboard.RunDashboardManagerImpl
-- com.intellij.execution.dashboard.RunDashboardManager
-- com.intellij.openapi.components.PersistentStateComponent
-- (com.intellij.openapi.project.Project):V
-- getDashboardContentManager():com.intellij.ui.content.ContentManager
-- getHiddenConfigurations():java.util.Set
-- getReuseCondition():java.util.function.Predicate
-- getRunConfigurations():java.util.List
-- getState():com.intellij.execution.dashboard.RunDashboardManagerImpl$State
-- getStatusFilter():com.intellij.execution.dashboard.tree.RunDashboardStatusFilter
-- getToolWindowIcon():javax.swing.Icon
-- getToolWindowId():java.lang.String
-- getTypes():java.util.Set
-- hideConfigurations(java.util.Collection):V
-- isOpenRunningConfigInNewTab():Z
-- isShowInDashboard(com.intellij.execution.configurations.RunConfiguration):Z
-- loadState(com.intellij.execution.dashboard.RunDashboardManagerImpl$State):V
-- noStateLoaded():V
-- restoreConfigurations(java.util.Collection):V
-- setOpenRunningConfigInNewTab(Z):V
-- setTypes(java.util.Set):V
-- updateDashboard(Z):V
-f:com.intellij.execution.dashboard.RunDashboardServiceViewContributor
-- com.intellij.execution.services.ServiceViewGroupingContributor
-- ():V
-- getGroupDescriptor(com.intellij.execution.dashboard.tree.GroupingNode):com.intellij.execution.services.ServiceViewDescriptor
-- getGroups(com.intellij.execution.dashboard.RunDashboardServiceViewContributor$RunConfigurationContributor):java.util.List
-- getServiceDescriptor(com.intellij.openapi.project.Project,com.intellij.execution.dashboard.RunDashboardServiceViewContributor$RunConfigurationContributor):com.intellij.execution.services.ServiceViewDescriptor
-- getServices(com.intellij.openapi.project.Project):java.util.List
-- getViewDescriptor(com.intellij.openapi.project.Project):com.intellij.execution.services.ServiceViewDescriptor
-f:com.intellij.execution.dashboard.actions.AddRunConfigurationTypeAction
-- com.intellij.openapi.project.DumbAwareAction
-- ():V
-- actionPerformed(com.intellij.openapi.actionSystem.AnActionEvent):V
-- getActionUpdateThread():com.intellij.openapi.actionSystem.ActionUpdateThread
-- update(com.intellij.openapi.actionSystem.AnActionEvent):V
-f:com.intellij.execution.dashboard.actions.DebugAction
-- com.intellij.execution.dashboard.actions.ExecutorAction
-- ():V
a:com.intellij.execution.dashboard.actions.ExecutorAction
- com.intellij.openapi.project.DumbAwareAction
- p:():V
@@ -11070,67 +11024,6 @@ a:com.intellij.execution.dashboard.actions.ExecutorAction
- pa:getExecutor():com.intellij.execution.Executor
- update(com.intellij.openapi.actionSystem.AnActionEvent):V
- pa:update(com.intellij.openapi.actionSystem.AnActionEvent,Z):V
-f:com.intellij.execution.dashboard.actions.RunAction
-- com.intellij.execution.dashboard.actions.ExecutorAction
-- ():V
-f:com.intellij.execution.dashboard.actions.RunDashboardActionPromoter
-- com.intellij.openapi.actionSystem.ActionPromoter
-- ():V
-- promote(java.util.List,com.intellij.openapi.actionSystem.DataContext):java.util.List
-f:com.intellij.execution.dashboard.tree.ConfigurationTypeDashboardGroupingRule
-- com.intellij.execution.dashboard.RunDashboardGroupingRule
-- sf:NAME:java.lang.String
-- ():V
-- getGroup(com.intellij.ide.util.treeView.AbstractTreeNode):com.intellij.execution.dashboard.RunDashboardGroup
-- getName():java.lang.String
-f:com.intellij.execution.dashboard.tree.FolderDashboardGroupingRule
-- com.intellij.execution.dashboard.RunDashboardGroupingRule
-- ():V
-- getGroup(com.intellij.ide.util.treeView.AbstractTreeNode):com.intellij.execution.dashboard.RunDashboardGroup
-- getName():java.lang.String
-f:com.intellij.execution.dashboard.tree.FolderDashboardGroupingRule$FolderDashboardGroup
-- com.intellij.execution.dashboard.tree.RunDashboardGroupImpl
-- (com.intellij.openapi.project.Project,java.lang.String,java.lang.String,javax.swing.Icon):V
-- getProject():com.intellij.openapi.project.Project
-f:com.intellij.execution.dashboard.tree.GroupingNode
-- com.intellij.ide.util.treeView.AbstractTreeNode
-- com.intellij.execution.dashboard.RunDashboardNode
-- (com.intellij.openapi.project.Project,java.lang.Object,com.intellij.execution.dashboard.RunDashboardGroup):V
-- addChildren(java.util.Collection):V
-- getChildren():java.util.Collection
-- getGroup():com.intellij.execution.dashboard.RunDashboardGroup
-f:com.intellij.execution.dashboard.tree.RunConfigurationNode
-- com.intellij.ide.util.treeView.AbstractTreeNode
-- com.intellij.execution.dashboard.RunDashboardRunConfigurationNode
-- (com.intellij.openapi.project.Project,com.intellij.execution.dashboard.RunDashboardManager$RunDashboardService,java.util.List):V
-- getChildren():java.util.Collection
-- getConfigurationSettings():com.intellij.execution.RunnerAndConfigurationSettings
-- getContent():com.intellij.ui.content.Content
-- getCustomizers():java.util.List
-- getDescriptor():com.intellij.execution.ui.RunContentDescriptor
-- getStatus():com.intellij.execution.dashboard.RunDashboardRunConfigurationStatus
-- getUserData(com.intellij.openapi.util.Key):java.lang.Object
-- putUserData(com.intellij.openapi.util.Key,java.lang.Object):V
-c:com.intellij.execution.dashboard.tree.RunDashboardGroupImpl
-- com.intellij.execution.dashboard.RunDashboardGroup
-- (java.lang.Object,java.lang.String,javax.swing.Icon):V
-- f:equals(java.lang.Object):Z
-- getIcon():javax.swing.Icon
-- getName():java.lang.String
-- getValue():java.lang.Object
-- hashCode():I
-f:com.intellij.execution.dashboard.tree.RunDashboardStatusFilter
-- ():V
-- hide(com.intellij.execution.dashboard.RunDashboardRunConfigurationStatus):V
-- isVisible(com.intellij.execution.dashboard.RunDashboardRunConfigurationStatus):Z
-- isVisible(com.intellij.ide.util.treeView.AbstractTreeNode):Z
-- show(com.intellij.execution.dashboard.RunDashboardRunConfigurationStatus):V
-f:com.intellij.execution.dashboard.tree.StatusDashboardGroupingRule
-- com.intellij.execution.dashboard.RunDashboardGroupingRule
-- sf:NAME:java.lang.String
-- ():V
-- getGroup(com.intellij.ide.util.treeView.AbstractTreeNode):com.intellij.execution.dashboard.RunDashboardGroup
-- getName():java.lang.String
f:com.intellij.execution.filters.TextConsoleBuilderFactoryImpl
- com.intellij.execution.filters.TextConsoleBuilderFactory
- ():V
diff --git a/platform/lang-impl/exposed-private-api.txt b/platform/lang-impl/exposed-private-api.txt
index 9ed87f4ad92b..dc590affb770 100644
--- a/platform/lang-impl/exposed-private-api.txt
+++ b/platform/lang-impl/exposed-private-api.txt
@@ -16,8 +16,6 @@ com/intellij/codeInspection/ex/GlobalInspectionContextImpl
com/intellij/codeInspection/ex/VisibleTreeState
com/intellij/codeInspection/ex/VisibleTreeStateComponent
com/intellij/conversion/impl/CachedConversionResult
-com/intellij/execution/dashboard/RunDashboardManagerImpl$State
-com/intellij/execution/dashboard/RunDashboardServiceViewContributor$RunConfigurationContributor
com/intellij/execution/services/ServiceViewManagerImpl$State
com/intellij/facet/frameworks/beans/Artifact
com/intellij/facet/frameworks/beans/ArtifactItem
diff --git a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardActionUtils.java b/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardActionUtils.java
index 1821653b9f9a..3cdea6862548 100644
--- a/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardActionUtils.java
+++ b/platform/lang-impl/src/com/intellij/execution/dashboard/actions/RunDashboardActionUtils.java
@@ -1,38 +1,36 @@
-// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
+// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.execution.dashboard.actions;
import com.intellij.execution.dashboard.RunDashboardRunConfigurationNode;
-import com.intellij.execution.dashboard.RunDashboardServiceViewContributor;
-import com.intellij.execution.dashboard.tree.GroupingNode;
import com.intellij.execution.services.ServiceViewActionUtils;
-import com.intellij.execution.services.ServiceViewManager;
-import com.intellij.execution.services.ServiceViewManagerImpl;
import com.intellij.ide.util.treeView.AbstractTreeNode;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys;
import com.intellij.openapi.project.Project;
import com.intellij.util.containers.JBIterable;
+import org.jetbrains.annotations.ApiStatus.Internal;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.*;
-final class RunDashboardActionUtils {
+@Internal
+public final class RunDashboardActionUtils {
private RunDashboardActionUtils() {
}
@NotNull
- static List getTargets(@NotNull AnActionEvent e) {
+ public static List getTargets(@NotNull AnActionEvent e) {
return ServiceViewActionUtils.getTargets(e, RunDashboardRunConfigurationNode.class);
}
@Nullable
- static RunDashboardRunConfigurationNode getTarget(@NotNull AnActionEvent e) {
+ public static RunDashboardRunConfigurationNode getTarget(@NotNull AnActionEvent e) {
return ServiceViewActionUtils.getTarget(e, RunDashboardRunConfigurationNode.class);
}
@NotNull
- static JBIterable getLeafTargets(@NotNull AnActionEvent e) {
+ public static JBIterable getLeafTargets(@NotNull AnActionEvent e) {
Project project = e.getProject();
if (project == null) return JBIterable.empty();
@@ -46,11 +44,10 @@ final class RunDashboardActionUtils {
private static boolean getLeaves(Project project, AnActionEvent e, List