Do not create Code Style settings "Copy From" popup menu until it is requested to be shown.

This commit is contained in:
Rustam.Vishnyakov
2011-11-15 18:33:32 +04:00
parent f6027e07da
commit b4b521c29b
3 changed files with 19 additions and 6 deletions
@@ -620,5 +620,9 @@ public abstract class CodeStyleAbstractPanel implements Disposable {
copyMenu.removeAll();
}
}
public boolean isCopyFromMenuAvailable() {
return false;
}
}
@@ -476,7 +476,12 @@ public abstract class TabbedLanguageCodeStylePanel extends CodeStyleAbstractPane
myConfigurable.reset();
}
}
@Override
public boolean isCopyFromMenuAvailable() {
return true;
}
//========================================================================================================================================
private class MyIndentOptionsWrapper extends CodeStyleAbstractPanel {
@@ -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);
}
}
}