IDEA-CR-10973 Packages are always updated in "Project interpreter" configurable

I've also removed excess calls to refreshAndGetPackages() in
PyActiveSdkConfigurable. It's not necessary to call it in #setSelectedSdk()
since item listener on the combo box updates list of installed packages
and notifications at the bottom anyway after selected value has been changed.
This commit is contained in:
Mikhail Golubev
2016-06-23 17:40:57 +03:00
parent 9df946a675
commit 282f7f1641
2 changed files with 7 additions and 18 deletions
@@ -51,8 +51,7 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -195,24 +194,16 @@ public class PyActiveSdkConfigurable implements UnnamedConfigurable {
myInitialSdkSet = myProjectSdksModel.getProjectSdks().keySet();
myProjectSdksModel.addListener(mySdkModelListener);
mySdkCombo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
mySdkCombo.addItemListener(e -> {
if (e.getStateChange() == ItemEvent.SELECTED) {
final Sdk selectedSdk = (Sdk)mySdkCombo.getSelectedItem();
myPackagesPanel.updatePackages(selectedSdk != null ?
PyPackageManagers.getInstance().getManagementService(myProject, selectedSdk) : null);
final PyPackageManagers packageManagers = PyPackageManagers.getInstance();
myPackagesPanel.updatePackages(selectedSdk != null ? packageManagers.getManagementService(myProject, selectedSdk) : null);
myPackagesPanel.updateNotifications(selectedSdk);
}
});
myAddSdkCallback = new SdkAddedCallback();
myDetailsButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
showDetails();
}
}
);
myDetailsButton.addActionListener(e -> showDetails());
}
private void showDetails() {
@@ -295,8 +286,6 @@ public class PyActiveSdkConfigurable implements UnnamedConfigurable {
else {
mySdkCombo.getModel().setSelectedItem(selectedSdk == null ? null : myProjectSdksModel.findSdk(selectedSdk.getName()));
}
myPackagesPanel.updatePackages(selectedSdk != null ? PyPackageManagers.getInstance().getManagementService(myProject, selectedSdk) : null);
myPackagesPanel.updateNotifications(selectedSdk);
}
private void rehighlightVersionSpecific(@Nullable final Sdk newSdk, @Nullable final Sdk prevSdk) {
@@ -144,7 +144,7 @@ public class PyPackageManagementService extends PackageManagementServiceEx {
final PyPackageManager manager = PyPackageManager.getInstance(mySdk);
final List<PyPackage> packages;
try {
packages = Lists.newArrayList(manager.refreshAndGetPackages(false));
packages = Lists.newArrayList(manager.refreshAndGetPackages(true));
}
catch (ExecutionException e) {
throw new IOException(e);