blob: 17bd1aa1db3f1fe0cbb1ebc1daaf9f7262740822 [file] [log] [blame]
package com.intellij.lang.customFolding;
import com.intellij.ui.components.JBCheckBox;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* @author Rustam Vishnyakov
*/
public class CustomFoldingSettingsPanel {
private JPanel mySettingsPanel;
private JTextField myFoldingStartField;
private JTextField myFoldingEndField;
private JBCheckBox myEnabledBox;
private JTextField myCollapsedStateField;
private JRadioButton myVisualStudioRadioButton;
private JRadioButton myNetBeansRadioButton;
private JPanel myPredefinedPatternsPanel;
public CustomFoldingSettingsPanel() {
myEnabledBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
boolean isEnabled = myEnabledBox.isSelected();
setFieldsEnabled(isEnabled);
}
});
ButtonGroup predefinedSettingsGroup = new ButtonGroup();
predefinedSettingsGroup.add(myNetBeansRadioButton);
predefinedSettingsGroup.add(myVisualStudioRadioButton);
myVisualStudioRadioButton.setSelected(false);
myNetBeansRadioButton.setSelected(false);
myNetBeansRadioButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
myFoldingStartField.setText(".*<editor-fold .*desc=\"(.*)\".*$");
myFoldingEndField.setText(".*</editor-fold>");
myCollapsedStateField.setText("defaultstate=\"collapsed\"");
}
});
myVisualStudioRadioButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
myFoldingStartField.setText(".*region (.*)$");
myFoldingEndField.setText(".*endregion");
myCollapsedStateField.setText("");
}
});
}
public JComponent getComponent() {
return mySettingsPanel;
}
public String getStartPattern() {
return myFoldingStartField.getText();
}
public String getEndPattern() {
return myFoldingEndField.getText();
}
public void setStartPattern(String startPattern) {
myFoldingStartField.setText(startPattern);
}
public void setEndPattern(String endPattern) {
myFoldingEndField.setText(endPattern);
}
public void setEnabled(boolean enabled) {
myEnabledBox.setSelected(enabled);
setFieldsEnabled(enabled);
}
public boolean isEnabled() {
return myEnabledBox.isSelected();
}
public void setCollapsedStatePattern(String pattern) {
myCollapsedStateField.setText(pattern);
}
public String getCollapsedStatePattern() {
return myCollapsedStateField.getText();
}
private void setFieldsEnabled(boolean enabled) {
myFoldingStartField.setEnabled(enabled);
myFoldingEndField.setEnabled(enabled);
myCollapsedStateField.setEnabled(enabled);
myPredefinedPatternsPanel.setEnabled(enabled);
myNetBeansRadioButton.setEnabled(enabled);
myVisualStudioRadioButton.setEnabled(enabled);
}
}