From b4b521c29b5c52102aeea0db962cde33a808b00a Mon Sep 17 00:00:00 2001 From: "Rustam.Vishnyakov" Date: Tue, 15 Nov 2011 18:32:14 +0400 Subject: [PATCH] Do not create Code Style settings "Copy From" popup menu until it is requested to be shown. --- .../options/CodeStyleAbstractPanel.java | 4 ++++ .../options/TabbedLanguageCodeStylePanel.java | 7 ++++++- .../options/codeStyle/CodeStyleSchemesPanel.java | 14 +++++++++----- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/application/options/CodeStyleAbstractPanel.java b/platform/lang-impl/src/com/intellij/application/options/CodeStyleAbstractPanel.java index 22a5b1646792..cb467e646318 100644 --- a/platform/lang-impl/src/com/intellij/application/options/CodeStyleAbstractPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/CodeStyleAbstractPanel.java @@ -620,5 +620,9 @@ public abstract class CodeStyleAbstractPanel implements Disposable { copyMenu.removeAll(); } } + + public boolean isCopyFromMenuAvailable() { + return false; + } } diff --git a/platform/lang-impl/src/com/intellij/application/options/TabbedLanguageCodeStylePanel.java b/platform/lang-impl/src/com/intellij/application/options/TabbedLanguageCodeStylePanel.java index b9686d105990..825f68742046 100644 --- a/platform/lang-impl/src/com/intellij/application/options/TabbedLanguageCodeStylePanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/TabbedLanguageCodeStylePanel.java @@ -476,7 +476,12 @@ public abstract class TabbedLanguageCodeStylePanel extends CodeStyleAbstractPane myConfigurable.reset(); } } - + + @Override + public boolean isCopyFromMenuAvailable() { + return true; + } + //======================================================================================================================================== private class MyIndentOptionsWrapper extends CodeStyleAbstractPanel { diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesPanel.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesPanel.java index c0fcbc095ae2..821eff38cc88 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesPanel.java @@ -317,11 +317,7 @@ public class CodeStyleSchemesPanel{ public void setCodeStyleSettingsPanel(NewCodeStyleSettingsPanel settingsPanel) { mySettingsPanel = settingsPanel; CodeStyleAbstractPanel selectedPanel = mySettingsPanel.getSelectedPanel(); - if (selectedPanel != null) { - initCopyFromMenu(); - selectedPanel.setupCopyFromMenu(myCopyFromMenu); - } - myCopyFromButton.setEnabled(myCopyFromMenu.getItemCount() > 0); + myCopyFromButton.setEnabled(selectedPanel != null && selectedPanel.isCopyFromMenuAvailable()); } private void onSettingsTypeChange() { @@ -344,6 +340,14 @@ public class CodeStyleSchemesPanel{ myCopyFromMenu = new PopupMenu(); myCopyFromButton.add(myCopyFromMenu); } + CodeStyleAbstractPanel selectedPanel = mySettingsPanel.getSelectedPanel(); + if (selectedPanel != null) { + selectedPanel.setupCopyFromMenu(myCopyFromMenu); + myCopyFromButton.setEnabled(myCopyFromMenu.getItemCount() > 0); + } + else { + myCopyFromButton.setEnabled(false); + } } }