From f0f21e0d49d3b1f90ab4e081a359fed471dacee9 Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Fri, 11 Mar 2016 16:48:45 +0300 Subject: [PATCH] IDEA-152867 Gradle window takes more than a minute to open --- .../ExternalSystemViewDefaultContributor.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalSystemViewDefaultContributor.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalSystemViewDefaultContributor.java index d6cec494d45c..512f421bcbb3 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalSystemViewDefaultContributor.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/view/ExternalSystemViewDefaultContributor.java @@ -243,7 +243,26 @@ public class ExternalSystemViewDefaultContributor extends ExternalSystemViewCont return order1 < order2 ? -1 : 1; } } - return super.compareTo(node); + + String dependencyName = getDependencySimpleName(this); + String thatDependencyName = getDependencySimpleName(node); + return StringUtil.compare(dependencyName, thatDependencyName, true); + } + + @NotNull + private static String getDependencySimpleName(@NotNull ExternalSystemNode node) { + Object thatData = node.getData(); + if (thatData instanceof LibraryDependencyData) { + LibraryDependencyData dependencyData = (LibraryDependencyData)thatData; + String externalName = dependencyData.getExternalName(); + if (StringUtil.isEmpty(externalName)) { + Set paths = dependencyData.getTarget().getPaths(LibraryPathType.BINARY); + if (paths.size() == 1) { + return new File(paths.iterator().next()).getName(); + } + } + } + return node.getName(); } }