From 676dfd784df2b4715844f886a80cdf93139b26cc Mon Sep 17 00:00:00 2001 From: Andrey Vokin Date: Wed, 20 Jul 2016 19:24:26 +0200 Subject: [PATCH] RUBY-18217 Show only Ruby 2.2+ for Rails API applications in Ruby Plugin. After review changes --- .../ide/util/projectWizard/SdkSettingsStep.java | 2 +- .../roots/ui/configuration/JdkComboBox.java | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/java/idea-ui/src/com/intellij/ide/util/projectWizard/SdkSettingsStep.java b/java/idea-ui/src/com/intellij/ide/util/projectWizard/SdkSettingsStep.java index e673f7c29cc6..954dd10592bb 100644 --- a/java/idea-ui/src/com/intellij/ide/util/projectWizard/SdkSettingsStep.java +++ b/java/idea-ui/src/com/intellij/ide/util/projectWizard/SdkSettingsStep.java @@ -85,7 +85,7 @@ public class SdkSettingsStep extends ModuleWizardStep { sdkFilter = JdkComboBox.getSdkFilter(sdkTypeIdFilter); } - myJdkComboBox = new JdkComboBox(myModel, sdkFilter, sdkTypeIdFilter, true); + myJdkComboBox = new JdkComboBox(myModel, sdkTypeIdFilter, sdkFilter, sdkTypeIdFilter, true); myJdkPanel = new JPanel(new GridBagLayout()); final PropertiesComponent component = project == null ? PropertiesComponent.getInstance() : PropertiesComponent.getInstance(project); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JdkComboBox.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JdkComboBox.java index f43b142cb80d..6ef56538841b 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JdkComboBox.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/JdkComboBox.java @@ -66,14 +66,15 @@ public class JdkComboBox extends ComboBoxWithWidePopup { public JdkComboBox(@NotNull final ProjectSdksModel jdkModel, @Nullable Condition filter) { - this(jdkModel, getSdkFilter(filter), filter, false); + this(jdkModel, filter, getSdkFilter(filter), filter, false); } public JdkComboBox(@NotNull final ProjectSdksModel jdkModel, + @Nullable Condition sdkTypeFilter, @Nullable Condition filter, @Nullable Condition creationFilter, boolean addSuggestedItems) { - super(new JdkComboBoxModel(jdkModel, filter, addSuggestedItems)); + super(new JdkComboBoxModel(jdkModel, sdkTypeFilter, filter, addSuggestedItems)); myFilter = filter; myCreationFilter = creationFilter; setRenderer(new ProjectJdkListRenderer() { @@ -289,7 +290,8 @@ public class JdkComboBox extends ComboBoxWithWidePopup { } private static class JdkComboBoxModel extends DefaultComboBoxModel { - public JdkComboBoxModel(final ProjectSdksModel jdksModel, @Nullable Condition sdkFilter, boolean addSuggested) { + public JdkComboBoxModel(final ProjectSdksModel jdksModel, @Nullable Condition sdkTypeFilter, + @Nullable Condition sdkFilter, boolean addSuggested) { Sdk[] jdks = jdksModel.getSdks(); Arrays.sort(jdks, (s1, s2) -> s1.getName().compareToIgnoreCase(s2.getName())); for (Sdk jdk : jdks) { @@ -298,14 +300,14 @@ public class JdkComboBox extends ComboBoxWithWidePopup { } } if (addSuggested) { - addSuggestedItems(sdkFilter, jdks); + addSuggestedItems(sdkTypeFilter, jdks); } } - protected void addSuggestedItems(@Nullable Condition sdkFilter, Sdk[] jdks) { + protected void addSuggestedItems(@Nullable Condition sdkTypeFilter, Sdk[] jdks) { SdkType[] types = SdkType.getAllTypes(); for (SdkType type : types) { - if (sdkFilter == null || ContainerUtil.find(jdks, sdkFilter) == null) { + if (sdkTypeFilter == null || sdkTypeFilter.value(type) && ContainerUtil.find(jdks, sdk -> sdk.getSdkType() == type) == null) { String homePath = type.suggestHomePath(); if (homePath != null && type.isValidSdkHome(homePath)) { addElement(new SuggestedJdkItem(type, homePath));