package org.intellij.plugins.markdown.settings;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.options.SearchableConfigurable;
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 MarkdownPreviewConfigurable implements SearchableConfigurable {
@Nullable
private MarkdownPreviewSettingsForm myForm = null;
@NotNull
private MarkdownApplicationSettings myMarkdownApplicationSettings;
public MarkdownPreviewConfigurable(@NotNull MarkdownApplicationSettings markdownApplicationSettings) {
myMarkdownApplicationSettings = markdownApplicationSettings;
}
@NotNull
@Override
public String getId() {
return "Settings.Markdown.Preview";
}
@Nls
@Override
public String getDisplayName() {
return MarkdownBundle.message("settings.markdown.preview.name");
}
@Nullable
@Override
public JComponent createComponent() {
return getForm().getComponent();
}
@Override
public boolean isModified() {
return !getForm().getMarkdownPreviewSettings().equals(myMarkdownApplicationSettings.getMarkdownPreviewSettings());
}
@Override
public void apply() throws ConfigurationException {
myMarkdownApplicationSettings.setMarkdownPreviewSettings(getForm().getMarkdownPreviewSettings());
}
@Override
public void reset() {
getForm().setMarkdownPreviewSettings(myMarkdownApplicationSettings.getMarkdownPreviewSettings());
}
@Override
public void disposeUIResources() {
myForm = null;
}
@NotNull
public MarkdownPreviewSettingsForm getForm() {
if (myForm == null) {
myForm = new MarkdownPreviewSettingsForm();
}
return myForm;
}
}