From 6b0d16eee887c683aa67038332d52faa44006bdf Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Fri, 23 Mar 2018 18:47:59 +0300 Subject: [PATCH] Gradle: do not shift project settings UI on selection change (IDEA-188265) --- .../IdeaGradleProjectSettingsControlBuilder.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/settings/IdeaGradleProjectSettingsControlBuilder.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/settings/IdeaGradleProjectSettingsControlBuilder.java index aa477be836fd..7468b5c38d3d 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/service/settings/IdeaGradleProjectSettingsControlBuilder.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/service/settings/IdeaGradleProjectSettingsControlBuilder.java @@ -121,6 +121,10 @@ public class IdeaGradleProjectSettingsControlBuilder implements GradleProjectSet private JBCheckBox myStoreExternallyCheckBox; private boolean dropStoreExternallyCheckBox; + @SuppressWarnings("FieldCanBeLocal") // do not shift UI on the hide/show action, see IdeaGradleProjectSettingsControlBuilder.showUi + @Nullable + private JPanel myGradleJdkPanel; + public IdeaGradleProjectSettingsControlBuilder(@NotNull GradleProjectSettings initialSettings) { myInstallationManager = ServiceManager.getService(GradleInstallationManager.class); myInitialSettings = initialSettings; @@ -290,9 +294,9 @@ public class IdeaGradleProjectSettingsControlBuilder implements GradleProjectSet myGradleJdkComboBox = new ExternalSystemJdkComboBox().withoutJre(); content.add(myGradleJdkLabel, ExternalSystemUiUtil.getLabelConstraints(indentLevel)); - JPanel gradleJdkPanel = new JPanel(new BorderLayout(SystemInfo.isMac ? 0 : 2, 0)); - gradleJdkPanel.setFocusable(false); - gradleJdkPanel.add(myGradleJdkComboBox, BorderLayout.CENTER); + myGradleJdkPanel = new JPanel(new BorderLayout(SystemInfo.isMac ? 0 : 2, 0)); + myGradleJdkPanel.setFocusable(false); + myGradleJdkPanel.add(myGradleJdkComboBox, BorderLayout.CENTER); myGradleJdkSetUpButton = new FixedSizeButton(myGradleJdkComboBox); myGradleJdkSetUpButton.setToolTipText(UIBundle.message("component.with.browse.button.browse.button.tooltip.text")); // FixedSizeButton isn't focusable but it should be selectable via keyboard. @@ -307,8 +311,8 @@ public class IdeaGradleProjectSettingsControlBuilder implements GradleProjectSet myGradleJdkSetUpButton.setFocusable(true); myGradleJdkSetUpButton.getAccessibleContext().setAccessibleName(ApplicationBundle.message("button.new")); } - gradleJdkPanel.add(myGradleJdkSetUpButton, BorderLayout.EAST); - content.add(gradleJdkPanel, ExternalSystemUiUtil.getFillLineConstraints(0)); + myGradleJdkPanel.add(myGradleJdkSetUpButton, BorderLayout.EAST); + content.add(myGradleJdkPanel, ExternalSystemUiUtil.getFillLineConstraints(0)); } return this; }