From 9356f0b92ef8f8a995ed3d6c99e59434ef87ca0e Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Wed, 12 Feb 2014 12:52:37 +0400 Subject: [PATCH] don't add already existed sdk --- .../configuration/PythonSdkOptions.java | 56 +++---------------- 1 file changed, 8 insertions(+), 48 deletions(-) diff --git a/python/ide/src/com/jetbrains/python/configuration/PythonSdkOptions.java b/python/ide/src/com/jetbrains/python/configuration/PythonSdkOptions.java index 68c69d51e6ad..a85680d31ea3 100644 --- a/python/ide/src/com/jetbrains/python/configuration/PythonSdkOptions.java +++ b/python/ide/src/com/jetbrains/python/configuration/PythonSdkOptions.java @@ -24,8 +24,10 @@ import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; -import com.intellij.openapi.projectRoots.*; -import com.intellij.openapi.projectRoots.impl.ProjectJdkImpl; +import com.intellij.openapi.projectRoots.ProjectJdkTable; +import com.intellij.openapi.projectRoots.Sdk; +import com.intellij.openapi.projectRoots.SdkModel; +import com.intellij.openapi.projectRoots.SdkModificator; import com.intellij.openapi.projectRoots.impl.SdkConfigurationUtil; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.OrderRootType; @@ -43,7 +45,6 @@ import com.intellij.util.containers.FactoryMap; import com.jetbrains.python.remote.PythonRemoteInterpreterManager; import com.jetbrains.python.sdk.*; import com.jetbrains.python.sdk.flavors.PythonSdkFlavor; -import icons.PythonIcons; import org.jetbrains.annotations.Nullable; import javax.swing.*; @@ -72,7 +73,7 @@ public class PythonSdkOptions extends DialogWrapper { private final Project myProject; private boolean myNewProject = false; - private boolean myShowOtherProjectVirtualenvs = false; + private boolean myShowOtherProjectVirtualenvs = true; public void setNewProject(final boolean newProject) { myNewProject = newProject; @@ -119,7 +120,6 @@ public class PythonSdkOptions extends DialogWrapper { updateOkButton(); } }) - .addExtraAction(new CreateVirtualEnvButton()) .addExtraAction(new ToggleVirtualEnvFilterButton()) .addExtraAction(new ShowPathButton()); @@ -160,35 +160,6 @@ public class PythonSdkOptions extends DialogWrapper { myProjectSdksModel.setProjectSdk(selectedSdk); } - private void createVirtualEnv(Sdk sdk) { - CreateVirtualEnvDialog.VirtualEnvCallback callback = new CreateVirtualEnvDialog.VirtualEnvCallback() { - @Override - public void virtualEnvCreated(Sdk sdk, boolean associateWithProject) { - PythonSdkType.setupSdkPaths(sdk, myProject, null); - if (associateWithProject) { - SdkAdditionalData additionalData = sdk.getSdkAdditionalData(); - if (additionalData == null) { - additionalData = new PythonSdkAdditionalData(PythonSdkFlavor.getFlavor(sdk.getHomePath())); - ((ProjectJdkImpl)sdk).setSdkAdditionalData(additionalData); - } - if (myNewProject) { - ((PythonSdkAdditionalData)additionalData).associateWithNewProject(); - } - else { - ((PythonSdkAdditionalData)additionalData).associateWithProject(myProject); - } - } - addCreatedSdk(sdk, true); - } - }; - final List allSdks = PyConfigurableInterpreterList.getInstance(myProject).getAllPythonSdks(myProject); - final CreateVirtualEnvDialog dialog = new CreateVirtualEnvDialog(myProject, allSdks, sdk); - dialog.show(); - if (dialog.isOK()) { - dialog.createVirtualEnv(allSdks, callback); - } - } - public boolean isModified() { return mySdkListChanged || myProjectSdksModel.isModified() || @@ -313,7 +284,9 @@ public class PythonSdkOptions extends DialogWrapper { setSdkAssociated(modificator, !dialog.makeAvailableToAll()); myModifiedModificators.add(modificator); } - myProjectSdksModel.addSdk(sdk); + final Sdk oldSdk = myProjectSdksModel.findSdk(sdk); + if (oldSdk == null) + myProjectSdksModel.addSdk(sdk); refreshSdkList(); mySdkList.setSelectedValue(sdk, true); mySdkListChanged = true; @@ -437,19 +410,6 @@ public class PythonSdkOptions extends DialogWrapper { PythonSdkType.setupSdkPaths(myProject, null, currentSdk, myModificators.get(currentSdk)); // or must it be a RunWriteAction? } - private class CreateVirtualEnvButton extends AnActionButton implements DumbAware { - public CreateVirtualEnvButton() { - super("Create Virtual Environment", PythonIcons.Python.Virtualenv); - } - - @Override - public void actionPerformed(AnActionEvent e) { - Sdk selectedSdk = getSelectedSdk(); - createVirtualEnv(selectedSdk); - updateOkButton(); - } - } - private class ToggleVirtualEnvFilterButton extends ToggleActionButton implements DumbAware { public ToggleVirtualEnvFilterButton() { super("Show virtual environments associated with other projects", AllIcons.General.Filter);