package org.asciidoc.intellij.settings;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.options.SearchableConfigurable;
import org.asciidoc.intellij.AsciiDocBundle;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
public class AsciiDocPreviewConfigurable implements SearchableConfigurable {
@Nullable
private AsciiDocPreviewSettingsForm myForm = null;
@NotNull
private AsciiDocApplicationSettings myAsciiDocApplicationSettings;
public AsciiDocPreviewConfigurable(@NotNull AsciiDocApplicationSettings asciiDocApplicationSettings) {
myAsciiDocApplicationSettings = asciiDocApplicationSettings;
}
@NotNull
@Override
public String getId() {
return "Settings.AsciiDoc.Preview";
}
@Nullable
@Override
public Runnable enableSearch(String option) {
return null;
}
@Nls
@Override
public String getDisplayName() {
return AsciiDocBundle.message("settings.asciidoc.preview.name");
}
@Nullable
@Override
public String getHelpTopic() {
return null;
}
@Nullable
@Override
public JComponent createComponent() {
return getForm().getComponent();
}
@Override
public boolean isModified() {
return !getForm().getAsciiDocPreviewSettings().equals(myAsciiDocApplicationSettings.getAsciiDocPreviewSettings());
}
@Override
public void apply() throws ConfigurationException {
myAsciiDocApplicationSettings.setAsciiDocPreviewSettings(getForm().getAsciiDocPreviewSettings());
}
@Override
public void reset() {
getForm().setAsciiDocPreviewSettings(myAsciiDocApplicationSettings.getAsciiDocPreviewSettings());
}
@Override
public void disposeUIResources() {
myForm = null;
}
@NotNull
public AsciiDocPreviewSettingsForm getForm() {
if (myForm == null) {
myForm = new AsciiDocPreviewSettingsForm();
}
return myForm;
}
}