blob: ed080b81ad6c087958e9c36421e14608d640c4dc [file] [log] [blame]
package com.intellij.lang.customFolding;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.options.SearchableConfigurable;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
/**
* @author Rustam Vishnyakov
*/
public class CustomFoldingConfigurable implements SearchableConfigurable {
private final CustomFoldingConfiguration myConfiguration;
private final CustomFoldingSettingsPanel mySettingsPanel;
public CustomFoldingConfigurable(Project project) {
myConfiguration = CustomFoldingConfiguration.getInstance(project);
mySettingsPanel = new CustomFoldingSettingsPanel();
}
@NotNull
@Override
public String getId() {
return getDisplayName();
}
@Override
public Runnable enableSearch(String option) {
return null;
}
@Nls
@Override
public String getDisplayName() {
return "Custom Folding"; //TODO<rv> Move to resources
}
@Override
public String getHelpTopic() {
return null; //TODO<rv>: Define help topic
}
@Override
public JComponent createComponent() {
return mySettingsPanel.getComponent();
}
@Override
public boolean isModified() {
return myConfiguration.getState().isEnabled() != mySettingsPanel.isEnabled() ||
!myConfiguration.getState().getStartFoldingPattern().equals(mySettingsPanel.getStartPattern()) ||
!myConfiguration.getState().getEndFoldingPattern().equals(mySettingsPanel.getEndPattern()) ||
!myConfiguration.getState().getDefaultCollapsedStatePattern().equals(mySettingsPanel.getCollapsedStatePattern());
}
@Override
public void apply() throws ConfigurationException {
myConfiguration.getState().setStartFoldingPattern(mySettingsPanel.getStartPattern());
myConfiguration.getState().setEndFoldingPattern(mySettingsPanel.getEndPattern());
myConfiguration.getState().setEnabled(mySettingsPanel.isEnabled());
myConfiguration.getState().setDefaultCollapsedStatePattern(mySettingsPanel.getCollapsedStatePattern());
}
@Override
public void reset() {
mySettingsPanel.setStartPattern(myConfiguration.getState().getStartFoldingPattern());
mySettingsPanel.setEndPattern(myConfiguration.getState().getEndFoldingPattern());
mySettingsPanel.setEnabled(myConfiguration.getState().isEnabled());
mySettingsPanel.setCollapsedStatePattern(myConfiguration.getState().getDefaultCollapsedStatePattern());
}
@Override
public void disposeUIResources() {
}
}