From fd582aadbf573144f1ebda6ef66f0cf830006bb9 Mon Sep 17 00:00:00 2001 From: "Denis.Zhdanov" Date: Wed, 7 Aug 2013 12:33:23 +0400 Subject: [PATCH] IDEA-111616 External System: Run Configurations: project selector passes selected project to default run configurations --- .../util/ExternalSystemApiUtil.java | 17 ++++++++++++++--- .../ExternalSystemTaskSettingsControl.java | 2 +- .../service/ui/ExternalProjectPathField.java | 3 +++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/platform/external-system-api/src/com/intellij/openapi/externalSystem/util/ExternalSystemApiUtil.java b/platform/external-system-api/src/com/intellij/openapi/externalSystem/util/ExternalSystemApiUtil.java index b2c18c6bd5b9..39016299b6be 100644 --- a/platform/external-system-api/src/com/intellij/openapi/externalSystem/util/ExternalSystemApiUtil.java +++ b/platform/external-system-api/src/com/intellij/openapi/externalSystem/util/ExternalSystemApiUtil.java @@ -405,11 +405,22 @@ public class ExternalSystemApiUtil { @NotNull public static String getProjectRepresentationName(@NotNull String targetProjectPath, @Nullable String rootProjectPath) { if (rootProjectPath == null) { - return new File(targetProjectPath).getParentFile().getName(); + File rootProjectDir = new File(targetProjectPath); + if (rootProjectDir.isFile()) { + rootProjectDir = rootProjectDir.getParentFile(); + } + return rootProjectDir.getName(); + } + File rootProjectDir = new File(rootProjectPath); + if (rootProjectDir.isFile()) { + rootProjectDir = rootProjectDir.getParentFile(); + } + File targetProjectDir = new File(targetProjectPath); + if (targetProjectDir.isFile()) { + targetProjectDir = targetProjectDir.getParentFile(); } - File rootProjectDir = new File(rootProjectPath).getParentFile(); StringBuilder buffer = new StringBuilder(); - for (File f = new File(targetProjectPath).getParentFile(); f != null && !FileUtil.filesEqual(f, rootProjectDir); f = f.getParentFile()) { + for (File f = targetProjectDir; f != null && !FileUtil.filesEqual(f, rootProjectDir); f = f.getParentFile()) { buffer.insert(0, f.getName()).insert(0, ":"); } buffer.insert(0, rootProjectDir.getName()); diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskSettingsControl.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskSettingsControl.java index 266b3bb5d33b..b5091d710cfc 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskSettingsControl.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/execution/ExternalSystemTaskSettingsControl.java @@ -117,7 +117,7 @@ public class ExternalSystemTaskSettingsControl implements ExternalSystemSettings String path = myOriginalSettings.getExternalProjectPath(); if (StringUtil.isEmpty(path)) { - path = ExternalSystemApiUtil.getLastUsedExternalProjectPath(myExternalSystemId); + path = ""; } myProjectPathField.setText(path); myTasksTextField.setText(StringUtil.join(myOriginalSettings.getTaskNames(), " ")); diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/ui/ExternalProjectPathField.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/ui/ExternalProjectPathField.java index 4e8e245f3433..bcf49e497ea0 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/ui/ExternalProjectPathField.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/ui/ExternalProjectPathField.java @@ -241,6 +241,9 @@ public class ExternalProjectPathField extends ComponentWithBrowseButton