1 package com.intellij.lang.customFolding;
3 import com.intellij.openapi.options.ConfigurationException;
4 import com.intellij.openapi.options.SearchableConfigurable;
5 import com.intellij.openapi.project.Project;
6 import org.jetbrains.annotations.Nls;
7 import org.jetbrains.annotations.NotNull;
12 * @author Rustam Vishnyakov
14 public class CustomFoldingConfigurable implements SearchableConfigurable {
16 private CustomFoldingConfiguration myConfiguration;
17 private CustomFoldingSettingsPanel mySettingsPanel;
19 public CustomFoldingConfigurable(Project project) {
20 myConfiguration = CustomFoldingConfiguration.getInstance(project);
21 mySettingsPanel = new CustomFoldingSettingsPanel();
26 public String getId() {
27 return getDisplayName();
31 public Runnable enableSearch(String option) {
37 public String getDisplayName() {
38 return "Custom Folding"; //TODO<rv> Move to resources
42 public Icon getIcon() {
47 public String getHelpTopic() {
48 return null; //TODO<rv>: Define help topic
52 public JComponent createComponent() {
53 return mySettingsPanel.getComponent();
57 public boolean isModified() {
58 return myConfiguration.getState().isEnabled() != mySettingsPanel.isEnabled() ||
59 !myConfiguration.getState().getStartFoldingPattern().equals(mySettingsPanel.getStartPattern()) ||
60 !myConfiguration.getState().getEndFoldingPattern().equals(mySettingsPanel.getEndPattern()) ||
61 !myConfiguration.getState().getDefaultCollapsedStatePattern().equals(mySettingsPanel.getCollapsedStatePattern());
65 public void apply() throws ConfigurationException {
66 myConfiguration.getState().setStartFoldingPattern(mySettingsPanel.getStartPattern());
67 myConfiguration.getState().setEndFoldingPattern(mySettingsPanel.getEndPattern());
68 myConfiguration.getState().setEnabled(mySettingsPanel.isEnabled());
69 myConfiguration.getState().setDefaultCollapsedStatePattern(mySettingsPanel.getCollapsedStatePattern());
74 mySettingsPanel.setStartPattern(myConfiguration.getState().getStartFoldingPattern());
75 mySettingsPanel.setEndPattern(myConfiguration.getState().getEndFoldingPattern());
76 mySettingsPanel.setEnabled(myConfiguration.getState().isEnabled());
77 mySettingsPanel.setCollapsedStatePattern(myConfiguration.getState().getDefaultCollapsedStatePattern());
81 public void disposeUIResources() {