package org.intellij.plugins.markdown.settings;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.options.SearchableConfigurable;
import com.intellij.openapi.util.Disposer;
import org.intellij.plugins.markdown.MarkdownBundle;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
public class MarkdownCssConfigurable implements SearchableConfigurable {
@Nullable
private MarkdownCssSettingsForm myForm = null;
@NotNull
private MarkdownApplicationSettings myMarkdownApplicationSettings;
public MarkdownCssConfigurable(@NotNull MarkdownApplicationSettings markdownApplicationSettings) {
myMarkdownApplicationSettings = markdownApplicationSettings;
}
@NotNull
@Override
public String getId() {
return "Settings.Markdown.Css";
}
@Nls
@Override
public String getDisplayName() {
return MarkdownBundle.message("settings.markdown.css.name");
}
@NotNull
@Override
public JComponent createComponent() {
return getForm().getComponent();
}
@NotNull
public MarkdownCssSettingsForm getForm() {
if (myForm == null) {
myForm = new MarkdownCssSettingsForm();
}
return myForm;
}
@Override
public boolean isModified() {
return !getForm().getMarkdownCssSettings().equals(myMarkdownApplicationSettings.getMarkdownCssSettings());
}
@Override
public void apply() throws ConfigurationException {
myMarkdownApplicationSettings.setMarkdownCssSettings(getForm().getMarkdownCssSettings());
}
@Override
public void reset() {
getForm().setMarkdownCssSettings(myMarkdownApplicationSettings.getMarkdownCssSettings());
}
@Override
public void disposeUIResources() {
if (myForm != null) {
Disposer.dispose(myForm);
}
myForm = null;
}
}