diff --git a/platform/lang-impl/src/com/intellij/application/options/GeneralCodeStylePanel.form b/platform/lang-impl/src/com/intellij/application/options/GeneralCodeStylePanel.form
index 76abc2f76c32..4b14cf76c2c4 100644
--- a/platform/lang-impl/src/com/intellij/application/options/GeneralCodeStylePanel.form
+++ b/platform/lang-impl/src/com/intellij/application/options/GeneralCodeStylePanel.form
@@ -26,17 +26,15 @@
-
+
-
+
-
+
-
-
-
+
diff --git a/platform/lang-impl/src/com/intellij/application/options/GeneralCodeStylePanel.java b/platform/lang-impl/src/com/intellij/application/options/GeneralCodeStylePanel.java
index 0efff525bc02..2faf3573e15b 100644
--- a/platform/lang-impl/src/com/intellij/application/options/GeneralCodeStylePanel.java
+++ b/platform/lang-impl/src/com/intellij/application/options/GeneralCodeStylePanel.java
@@ -28,15 +28,18 @@ import com.intellij.openapi.fileTypes.FileTypes;
import com.intellij.openapi.fileTypes.LanguageFileType;
import com.intellij.openapi.util.Comparing;
import com.intellij.psi.PsiFile;
-import com.intellij.psi.codeStyle.*;
-import com.intellij.ui.DocumentAdapter;
+import com.intellij.psi.codeStyle.CodeStyleSettings;
+import com.intellij.psi.codeStyle.DisplayPriority;
+import com.intellij.psi.codeStyle.FileTypeIndentOptionsProvider;
+import com.intellij.psi.codeStyle.LanguageCodeStyleSettingsProvider;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import javax.swing.*;
-import javax.swing.event.DocumentEvent;
import java.awt.*;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
public class GeneralCodeStylePanel extends CodeStyleAbstractPanel {
@@ -49,12 +52,11 @@ public class GeneralCodeStylePanel extends CodeStyleAbstractPanel {
private static final String MACINTOSH_STRING = ApplicationBundle.message("combobox.crlf.mac");
- private JTextField myRightMarginField;
+ private JSpinner myRightMarginSpinner;
private JComboBox myLineSeparatorCombo;
private JPanel myPanel;
private JCheckBox myCbWrapWhenTypingReachesRightMargin;
private JPanel myDefaultIndentOptionsPanel;
- private int myRightMargin;
private SmartIndentOptionsEditor myIndentOptionsEditor;
@@ -85,17 +87,7 @@ public class GeneralCodeStylePanel extends CodeStyleAbstractPanel {
myLineSeparatorCombo.addItem(MACINTOSH_STRING);
addPanelToWatch(myPanel);
- myRightMargin = settings.RIGHT_MARGIN;
-
- myRightMarginField.getDocument().addDocumentListener(new DocumentAdapter() {
- @Override
- protected void textChanged(final DocumentEvent e) {
- int valueFromControl = getRightMarginImpl();
- if (valueFromControl > 0) {
- myRightMargin = valueFromControl;
- }
- }
- });
+ myRightMarginSpinner.setModel(new SpinnerNumberModel(settings.RIGHT_MARGIN, 1, 1000000, 1));
myIndentOptionsEditor = new SmartIndentOptionsEditor();
myDefaultIndentOptionsPanel.add(myIndentOptionsEditor.createPanel(), BorderLayout.CENTER);
@@ -115,7 +107,7 @@ public class GeneralCodeStylePanel extends CodeStyleAbstractPanel {
@Override
protected int getRightMargin() {
- return myRightMargin;
+ return ((Number) myRightMarginSpinner.getValue()).intValue();
}
@Override
@@ -134,26 +126,12 @@ public class GeneralCodeStylePanel extends CodeStyleAbstractPanel {
public void apply(CodeStyleSettings settings) {
settings.LINE_SEPARATOR = getSelectedLineSeparator();
- int rightMarginImpl = getRightMarginImpl();
- if (rightMarginImpl > 0) {
- settings.RIGHT_MARGIN = rightMarginImpl;
- }
+ settings.RIGHT_MARGIN = ((Number) myRightMarginSpinner.getValue()).intValue();
settings.WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN = myCbWrapWhenTypingReachesRightMargin.isSelected();
myIndentOptionsEditor.setEnabled(true);
myIndentOptionsEditor.apply(settings, settings.OTHER_INDENT_OPTIONS);
}
-
- private int getRightMarginImpl() {
- if (myRightMarginField == null) return -1;
- try {
- return Integer.parseInt(myRightMarginField.getText());
- }
- catch (NumberFormatException e) {
- return -1;
- }
- }
-
@Nullable
private String getSelectedLineSeparator() {
if (UNIX_STRING.equals(myLineSeparatorCombo.getSelectedItem())) {
@@ -179,7 +157,7 @@ public class GeneralCodeStylePanel extends CodeStyleAbstractPanel {
return true;
}
- if (!myRightMarginField.getText().equals(String.valueOf(settings.RIGHT_MARGIN))) return true;
+ if (!Comparing.equal(myRightMarginSpinner.getValue(), settings.RIGHT_MARGIN)) return true;
myIndentOptionsEditor.setEnabled(true);
return myIndentOptionsEditor.isModified(settings, settings.OTHER_INDENT_OPTIONS);
}
@@ -206,7 +184,7 @@ public class GeneralCodeStylePanel extends CodeStyleAbstractPanel {
myLineSeparatorCombo.setSelectedItem(SYSTEM_DEPENDANT_STRING);
}
- myRightMarginField.setText(String.valueOf(settings.RIGHT_MARGIN));
+ myRightMarginSpinner.setValue(settings.RIGHT_MARGIN);
myCbWrapWhenTypingReachesRightMargin.setSelected(settings.WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN);
myIndentOptionsEditor.reset(settings, settings.OTHER_INDENT_OPTIONS);
myIndentOptionsEditor.setEnabled(true);