Get rid of Editor leaks in CodeStyleSettings (IDEA-95395) [CR-IC-6178]

This commit is contained in:
Rustam Vishnyakov
2014-08-28 19:41:52 +04:00
parent dff975ffd0
commit 89ec378d5b
@@ -346,34 +346,31 @@ public class CodeStyleSchemesConfigurable extends SearchableConfigurable.Parent.
String displayName = myProvider.getConfigurableDisplayName();
if (displayName != null) return displayName;
return ensurePanel().getDisplayName(); // fallback for 8.0 API compatibility
return myPanel != null ? myPanel.getDisplayName() : null; // fallback for 8.0 API compatibility
}
@Override
public String getHelpTopic() {
return ensurePanel().getHelpTopic();
}
private CodeStyleMainPanel ensurePanel() {
if (myPanel == null) {
myPanel = new CodeStyleMainPanel(ensureModel(), myLangSelector, myFactory);
}
return myPanel;
return myPanel != null ? myPanel.getHelpTopic() : null;
}
@Override
public JComponent createComponent() {
return ensurePanel();
myPanel = new CodeStyleMainPanel(ensureModel(), myLangSelector, myFactory);
return myPanel;
}
@Override
public boolean isModified() {
boolean someSchemeModified = ensurePanel().isModified();
if (someSchemeModified) {
myApplyCompleted = false;
myRevertCompleted = false;
if (myPanel != null) {
boolean someSchemeModified = myPanel.isModified();
if (someSchemeModified) {
myApplyCompleted = false;
myRevertCompleted = false;
}
return someSchemeModified;
}
return someSchemeModified;
return false;
}
@Override
@@ -428,20 +425,25 @@ public class CodeStyleSchemesConfigurable extends SearchableConfigurable.Parent.
}
public boolean isPanelModified(CodeStyleScheme scheme) {
return ensurePanel().isModified(scheme);
return myPanel != null && myPanel.isModified(scheme);
}
public boolean isPanelModified() {
return ensurePanel().isModified();
return myPanel != null && myPanel.isModified();
}
public void applyPanel() throws ConfigurationException {
ensurePanel().apply();
if (myPanel != null) {
myPanel.apply();
}
}
@Override
public Set<String> processListOptions() {
return ensurePanel().processListOptions();
if (myPanel == null) {
myPanel = new CodeStyleMainPanel(ensureModel(), myLangSelector, myFactory);
}
return myPanel.processListOptions();
}
}
}