From b169e398b076480c133ee3bf7778191bb3490b7e Mon Sep 17 00:00:00 2001 From: "Rustam.Vishnyakov" Date: Thu, 2 Sep 2010 13:21:49 +0400 Subject: [PATCH] Per-language code style settings: Wrapping and braces panel, other important fixes --- .../codeStyle/CodeStyleBlankLinesPanel.java | 2 +- .../codeStyle/OptionTableWithPreviewPanel.java | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleBlankLinesPanel.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleBlankLinesPanel.java index e30b38cc1e47..ed9c4e015964 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleBlankLinesPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleBlankLinesPanel.java @@ -288,8 +288,8 @@ public class CodeStyleBlankLinesPanel extends MultilanguageCodeStyleAbstractPane public void setValue(int fieldValue) { if (fieldValue != myCurrValue) { - myTextField.setText(String.valueOf(fieldValue)); myCurrValue = fieldValue; + myTextField.setText(String.valueOf(fieldValue)); } } } diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/OptionTableWithPreviewPanel.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/OptionTableWithPreviewPanel.java index ffe7aaf26c45..7412f9abc73e 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/OptionTableWithPreviewPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/OptionTableWithPreviewPanel.java @@ -21,6 +21,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.Comparing; import com.intellij.psi.PsiFile; import com.intellij.psi.codeStyle.CodeStyleSettings; +import com.intellij.psi.codeStyle.CommonCodeStyleSettings; import com.intellij.psi.codeStyle.CustomCodeStyleSettings; import com.intellij.ui.ScrollPaneFactory; import com.intellij.ui.treeStructure.treetable.ListTreeTableModel; @@ -167,6 +168,10 @@ public abstract class OptionTableWithPreviewPanel extends MultilanguageCodeStyle @Override protected void onLanguageChange(Language language) { + if (myTreeTable.isEditing()) { + myTreeTable.getCellEditor().stopCellEditing(); + } + resetImpl(getSettings()); myTreeTable.repaint(); } @@ -458,16 +463,17 @@ public abstract class OptionTableWithPreviewPanel extends MultilanguageCodeStyle } private Object getSettingsValue(Object key, final CodeStyleSettings settings) { + CommonCodeStyleSettings commonSettings = settings.getCommonSettings(getSelectedLanguage()); try { if (key instanceof BooleanOptionKey) { Field field = (Field)myKeyToFieldMap.get(key); - return field.getBoolean(settings) ? Boolean.TRUE : Boolean.FALSE; + return field.getBoolean(commonSettings) ? Boolean.TRUE : Boolean.FALSE; } else if (key instanceof SelectionOptionKey) { Field field = (Field)myKeyToFieldMap.get(key); SelectionOptionKey intKey = (SelectionOptionKey)key; int[] values = intKey.values; - int value = field.getInt(settings); + int value = field.getInt(commonSettings); for (int i = 0; i < values.length; i++) { if (values[i] == value) return intKey.options[i]; } @@ -480,10 +486,11 @@ public abstract class OptionTableWithPreviewPanel extends MultilanguageCodeStyle } public void setSettingsValue(Object key, Object value, final CodeStyleSettings settings) { + CommonCodeStyleSettings commonSettings = settings.getCommonSettings(getSelectedLanguage()); try { if (key instanceof BooleanOptionKey) { Field field = (Field)myKeyToFieldMap.get(key); - field.setBoolean(settings, ((Boolean)value).booleanValue()); + field.setBoolean(commonSettings, ((Boolean)value).booleanValue()); } else if (key instanceof SelectionOptionKey) { Field field = (Field)myKeyToFieldMap.get(key); @@ -491,7 +498,7 @@ public abstract class OptionTableWithPreviewPanel extends MultilanguageCodeStyle int[] values = intKey.values; for (int i = 0; i < values.length; i++) { if (intKey.options[i].equals(value)) { - field.setInt(settings, values[i]); + field.setInt(commonSettings, values[i]); return; } }