From ef1c8fcccbf46f70653f32dec7cb75a1271faeef Mon Sep 17 00:00:00 2001 From: Sergei Vorobyov Date: Fri, 15 Mar 2019 15:54:30 +0300 Subject: [PATCH] IDEA-208727 added test tasks color identification in toolwindow --- .../view/ExternalProjectTree.kt | 23 +++++++++++++++++++ .../view/ExternalProjectsViewImpl.java | 2 +- .../openapi/externalSystem/view/TaskNode.java | 4 ++++ .../intellij/ui/treeStructure/SimpleTree.java | 2 +- 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalProjectTree.kt diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalProjectTree.kt b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalProjectTree.kt new file mode 100644 index 000000000000..22e50368b84c --- /dev/null +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalProjectTree.kt @@ -0,0 +1,23 @@ +// Copyright 2000-2019 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.openapi.externalSystem.view + +import com.intellij.openapi.project.Project +import com.intellij.psi.search.scope.TestsScope +import com.intellij.ui.FileColorManager +import com.intellij.ui.treeStructure.SimpleTree +import com.intellij.util.ui.tree.TreeUtil +import java.awt.Color + +class ExternalProjectTree(project: Project) : SimpleTree() { + private val colorManager = FileColorManager.getInstance(project) + + override fun isFileColorsEnabled() = true + + override fun getFileColorFor(value: Any?): Color? { + val node = TreeUtil.getUserObject(value) + if (node is TaskNode && node.isTest) { + return colorManager.getScopeColor(TestsScope.NAME) + } + return null + } +} \ No newline at end of file diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalProjectsViewImpl.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalProjectsViewImpl.java index 16530901dd63..f72aa3d7896c 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalProjectsViewImpl.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalProjectsViewImpl.java @@ -298,7 +298,7 @@ public class ExternalProjectsViewImpl extends SimpleToolWindowPanel implements D } private void initTree() { - myTree = new SimpleTree(); + myTree = new ExternalProjectTree(myProject); myTree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION); final ActionManager actionManager = ActionManager.getInstance(); diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/TaskNode.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/TaskNode.java index 02269ebb514c..9bf3cec045d6 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/TaskNode.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/TaskNode.java @@ -76,6 +76,10 @@ public class TaskNode extends ExternalSystemNode { return !myTaskData.isInherited() || getExternalProjectsView().showInheritedTasks(); } + public boolean isTest() { + return myTaskData.isTest(); + } + public String getModuleOwnerName() { return moduleOwnerName; } diff --git a/platform/platform-api/src/com/intellij/ui/treeStructure/SimpleTree.java b/platform/platform-api/src/com/intellij/ui/treeStructure/SimpleTree.java index 3676093963bd..483bd7876e92 100644 --- a/platform/platform-api/src/com/intellij/ui/treeStructure/SimpleTree.java +++ b/platform/platform-api/src/com/intellij/ui/treeStructure/SimpleTree.java @@ -248,7 +248,7 @@ public class SimpleTree extends Tree implements CellEditorListener { } @Override - public final boolean isFileColorsEnabled() { + public boolean isFileColorsEnabled() { return false; }