From e4c35bef3fb547d1b9a0e420dff1505488c0fb70 Mon Sep 17 00:00:00 2001 From: "Denis.Zhdanov" Date: Thu, 2 May 2013 23:54:54 +0400 Subject: [PATCH] IDEA-83595 Allow adding more than one gradle project Don't reuse ExternalProjectSettings object from 'import from external system' wizard at the external system settings (the wizard used to modify data of the project imported previously during the same ide session) --- .../settings/ExternalProjectSettings.java | 10 +++++++++- .../wizard/AbstractExternalProjectImportBuilder.java | 11 ++++++----- .../gradle/settings/GradleProjectSettings.java | 11 +++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/platform/external-system-api/src/com/intellij/openapi/externalSystem/settings/ExternalProjectSettings.java b/platform/external-system-api/src/com/intellij/openapi/externalSystem/settings/ExternalProjectSettings.java index d44f4efcb920..c7a6ecbd5443 100644 --- a/platform/external-system-api/src/com/intellij/openapi/externalSystem/settings/ExternalProjectSettings.java +++ b/platform/external-system-api/src/com/intellij/openapi/externalSystem/settings/ExternalProjectSettings.java @@ -24,7 +24,7 @@ import org.jetbrains.annotations.NotNull; * @author Denis Zhdanov * @since 4/24/13 11:41 AM */ -public class ExternalProjectSettings implements Comparable { +public abstract class ExternalProjectSettings implements Comparable, Cloneable { private String myExternalProjectPath; private boolean myUseAutoImport; @@ -69,4 +69,12 @@ public class ExternalProjectSettings implements Comparable projects = ContainerUtilRt.newHashSet(settings.getLinkedProjectsSettings()); - projects.add(myControl.getProjectSettings()); - settings.setLinkedProjectsSettings(projects); + Set projects = ContainerUtilRt.newHashSet(systemSettings.getLinkedProjectsSettings()); + projects.add(projectSettings); + systemSettings.setLinkedProjectsSettings(projects); onProjectInit(project); if (externalProjectNode != null) { diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/settings/GradleProjectSettings.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/settings/GradleProjectSettings.java index a674a03bcd3c..369f2f9d8d80 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/settings/GradleProjectSettings.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/settings/GradleProjectSettings.java @@ -16,6 +16,7 @@ package org.jetbrains.plugins.gradle.settings; import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** @@ -43,4 +44,14 @@ public class GradleProjectSettings extends ExternalProjectSettings { public void setPreferLocalInstallationToWrapper(boolean preferLocalInstallationToWrapper) { myPreferLocalInstallationToWrapper = preferLocalInstallationToWrapper; } + + @NotNull + @Override + public ExternalProjectSettings clone() { + GradleProjectSettings result = new GradleProjectSettings(); + copyTo(result); + result.myGradleHome = myGradleHome; + result.myPreferLocalInstallationToWrapper = myPreferLocalInstallationToWrapper; + return result; + } }