mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
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)
This commit is contained in:
+9
-1
@@ -24,7 +24,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
* @author Denis Zhdanov
|
||||
* @since 4/24/13 11:41 AM
|
||||
*/
|
||||
public class ExternalProjectSettings implements Comparable<ExternalProjectSettings> {
|
||||
public abstract class ExternalProjectSettings implements Comparable<ExternalProjectSettings>, Cloneable {
|
||||
|
||||
private String myExternalProjectPath;
|
||||
private boolean myUseAutoImport;
|
||||
@@ -69,4 +69,12 @@ public class ExternalProjectSettings implements Comparable<ExternalProjectSettin
|
||||
public String toString() {
|
||||
return myExternalProjectPath;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public abstract ExternalProjectSettings clone();
|
||||
|
||||
protected void copyTo(@NotNull ExternalProjectSettings receiver) {
|
||||
receiver.myExternalProjectPath = myExternalProjectPath;
|
||||
receiver.myUseAutoImport = myUseAutoImport;
|
||||
}
|
||||
}
|
||||
|
||||
+6
-5
@@ -127,12 +127,13 @@ public abstract class AbstractExternalProjectImportBuilder<C extends AbstractImp
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void run() {
|
||||
AbstractExternalSystemSettings settings = mySettingsManager.getSettings(project, myExternalSystemId);
|
||||
final String linkedProjectPath = myControl.getProjectSettings().getExternalProjectPath();
|
||||
AbstractExternalSystemSettings systemSettings = mySettingsManager.getSettings(project, myExternalSystemId);
|
||||
ExternalProjectSettings projectSettings = myControl.getProjectSettings().clone();
|
||||
final String linkedProjectPath = projectSettings.getExternalProjectPath();
|
||||
assert linkedProjectPath != null;
|
||||
Set<ExternalProjectSettings> projects = ContainerUtilRt.newHashSet(settings.getLinkedProjectsSettings());
|
||||
projects.add(myControl.getProjectSettings());
|
||||
settings.setLinkedProjectsSettings(projects);
|
||||
Set<ExternalProjectSettings> projects = ContainerUtilRt.newHashSet(systemSettings.getLinkedProjectsSettings());
|
||||
projects.add(projectSettings);
|
||||
systemSettings.setLinkedProjectsSettings(projects);
|
||||
onProjectInit(project);
|
||||
|
||||
if (externalProjectNode != null) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user