mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
RunDashboard: default run configuration status provider
This commit is contained in:
+22
@@ -16,6 +16,8 @@
|
||||
package com.intellij.execution.dashboard;
|
||||
|
||||
import com.intellij.execution.ExecutionBundle;
|
||||
import com.intellij.execution.process.ProcessHandler;
|
||||
import com.intellij.execution.ui.RunContentDescriptor;
|
||||
import com.intellij.icons.AllIcons;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -46,4 +48,24 @@ public class DashboardRunConfigurationStatus {
|
||||
public Icon getIcon() {
|
||||
return myIcon;
|
||||
}
|
||||
|
||||
public static DashboardRunConfigurationStatus getStatus(DashboardRunConfigurationNode node) {
|
||||
RunContentDescriptor descriptor = node.getDescriptor();
|
||||
if (descriptor == null) {
|
||||
return STOPPED;
|
||||
}
|
||||
ProcessHandler processHandler = descriptor.getProcessHandler();
|
||||
if (processHandler == null) {
|
||||
return STOPPED;
|
||||
}
|
||||
Integer exitCode = processHandler.getExitCode();
|
||||
if (exitCode == null) {
|
||||
return STARTED;
|
||||
}
|
||||
Boolean terminationRequested = processHandler.getUserData(ProcessHandler.TERMINATION_REQUESTED);
|
||||
if (exitCode == 0 || (terminationRequested != null && terminationRequested)) {
|
||||
return STOPPED;
|
||||
}
|
||||
return FAILED;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-19
@@ -17,8 +17,6 @@ package com.intellij.execution.dashboard;
|
||||
|
||||
import com.intellij.execution.configurations.ConfigurationType;
|
||||
import com.intellij.execution.configurations.RunConfiguration;
|
||||
import com.intellij.execution.process.ProcessHandler;
|
||||
import com.intellij.execution.ui.RunContentDescriptor;
|
||||
import com.intellij.ide.projectView.PresentationData;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.ui.ColoredTreeCellRenderer;
|
||||
@@ -69,23 +67,7 @@ public abstract class RunDashboardContributor {
|
||||
*/
|
||||
@NotNull
|
||||
public DashboardRunConfigurationStatus getStatus(@NotNull DashboardRunConfigurationNode node) {
|
||||
RunContentDescriptor descriptor = node.getDescriptor();
|
||||
if (descriptor == null) {
|
||||
return DashboardRunConfigurationStatus.STOPPED;
|
||||
}
|
||||
ProcessHandler processHandler = descriptor.getProcessHandler();
|
||||
if (processHandler == null) {
|
||||
return DashboardRunConfigurationStatus.STOPPED;
|
||||
}
|
||||
Integer exitCode = processHandler.getExitCode();
|
||||
if (exitCode == null) {
|
||||
return DashboardRunConfigurationStatus.STARTED;
|
||||
}
|
||||
Boolean terminationRequested = processHandler.getUserData(ProcessHandler.TERMINATION_REQUESTED);
|
||||
if (exitCode == 0 || (terminationRequested != null && terminationRequested)) {
|
||||
return DashboardRunConfigurationStatus.STOPPED;
|
||||
}
|
||||
return DashboardRunConfigurationStatus.FAILED;
|
||||
return DashboardRunConfigurationStatus.getStatus(node);
|
||||
}
|
||||
|
||||
public boolean isShowInDashboard(@NotNull RunConfiguration runConfiguration) {
|
||||
|
||||
+3
-4
@@ -66,10 +66,9 @@ public class StatusDashboardGroupingRule implements DashboardGroupingRule {
|
||||
if (node instanceof DashboardRunConfigurationNode) {
|
||||
DashboardRunConfigurationNode runConfigurationNode = (DashboardRunConfigurationNode)node;
|
||||
RunDashboardContributor contributor = runConfigurationNode.getContributor();
|
||||
if (contributor != null) {
|
||||
DashboardRunConfigurationStatus status = contributor.getStatus(runConfigurationNode);
|
||||
return new DashboardGroupImpl<>(status, status.getName(), status.getIcon());
|
||||
}
|
||||
DashboardRunConfigurationStatus status = contributor != null ? contributor.getStatus(runConfigurationNode) :
|
||||
DashboardRunConfigurationStatus.getStatus(runConfigurationNode);
|
||||
return new DashboardGroupImpl<>(status, status.getName(), status.getIcon());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user