| 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); |
| } |
| } |