update copyright
[fedora-idea.git] / java / java-impl / src / com / intellij / application / options / CodeStyleIndentAndBracesPanel.java
blob037a792991e1f217f356b6560766f853611b79bd
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package com.intellij.application.options;
18 import com.intellij.ide.highlighter.JavaHighlighterFactory;
19 import com.intellij.openapi.application.ApplicationBundle;
20 import com.intellij.openapi.editor.colors.EditorColorsScheme;
21 import com.intellij.openapi.editor.highlighter.EditorHighlighter;
22 import com.intellij.openapi.fileTypes.FileType;
23 import com.intellij.openapi.fileTypes.StdFileTypes;
24 import com.intellij.pom.java.LanguageLevel;
25 import com.intellij.psi.codeStyle.CodeStyleSettings;
26 import com.intellij.psi.PsiFile;
27 import com.intellij.psi.util.PsiUtil;
28 import com.intellij.ui.IdeBorderFactory;
29 import com.intellij.ui.OptionGroup;
30 import org.jetbrains.annotations.NonNls;
31 import org.jetbrains.annotations.NotNull;
33 import javax.swing.*;
34 import java.awt.*;
36 public class CodeStyleIndentAndBracesPanel extends CodeStyleAbstractPanel {
37 private static final String[] BRACE_PLACEMENT_OPTIONS = new String[]{
38 ApplicationBundle.message("combobox.brace.placement.end.of.line"),
39 ApplicationBundle.message("combobox.brace.placement.next.line.if.wrapped"),
40 ApplicationBundle.message("combobox.brace.placement.next.line"),
41 ApplicationBundle.message("combobox.brace.placement.next.line.shifted"),
42 ApplicationBundle.message("combobox.brace.placement.next.line.shifted2")
45 private static final int[] BRACE_PLACEMENT_VALUES = new int[] {
46 CodeStyleSettings.END_OF_LINE,
47 CodeStyleSettings.NEXT_LINE_IF_WRAPPED,
48 CodeStyleSettings.NEXT_LINE,
49 CodeStyleSettings.NEXT_LINE_SHIFTED,
50 CodeStyleSettings.NEXT_LINE_SHIFTED2
53 private static final String[] BRACE_FORCE_OPTIONS = new String[]{
54 ApplicationBundle.message("combobox.force.braces.do.not.force"),
55 ApplicationBundle.message("combobox.force.braces.when.multiline"),
56 ApplicationBundle.message("combobox.force.braces.always")
59 private static final int[] BRACE_FORCE_VALUES = new int[]{
60 CodeStyleSettings.DO_NOT_FORCE,
61 CodeStyleSettings.FORCE_BRACES_IF_MULTILINE,
62 CodeStyleSettings.FORCE_BRACES_ALWAYS
65 private JComboBox myClassDeclarationCombo = new JComboBox();
66 private JComboBox myMethodDeclarationCombo = new JComboBox();
67 private JComboBox myOtherCombo = new JComboBox();
69 private JCheckBox myCbElseOnNewline;
70 private JCheckBox myCbWhileOnNewline;
71 private JCheckBox myCbCatchOnNewline;
72 private JCheckBox myCbFinallyOnNewline;
74 private JCheckBox myCbSpecialElseIfTreatment;
75 private JCheckBox myCbIndentCaseFromSwitch;
78 private JComboBox myIfForceCombo;
79 private JComboBox myForForceCombo;
80 private JComboBox myWhileForceCombo;
81 private JComboBox myDoWhileForceCombo;
83 private JCheckBox myAlignDeclarationParameters;
84 private JCheckBox myAlignCallParameters;
85 private JCheckBox myAlignExtendsList;
86 private JCheckBox myAlignForStatement;
87 private JCheckBox myAlignThrowsList;
88 private JCheckBox myAlignParenthesizedExpression;
89 private JCheckBox myAlignBinaryExpression;
90 private JCheckBox myAlignTernaryExpression;
91 private JCheckBox myAlignAssignment;
92 private JCheckBox myAlignArrayInitializerExpression;
93 private JCheckBox myKeepLineBreaks;
94 private JCheckBox myKeepCommentAtFirstColumn;
95 private JCheckBox myKeepMethodsInOneLine;
96 private JCheckBox myKeepSimpleBlocksInOneLine;
97 private JCheckBox myKeepControlStatementInOneLine;
99 private final JPanel myPanel = new JPanel(new GridBagLayout());
101 public CodeStyleIndentAndBracesPanel(CodeStyleSettings settings) {
102 super(settings);
104 myPanel.add(createKeepWhenReformatingPanel(),
105 new GridBagConstraints(0, 0, 1, 1, 0, 0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,
106 new Insets(0, 4, 0, 4), 0, 0));
108 myPanel.add(createBracesPanel(),
109 new GridBagConstraints(0, 1, 1, 1, 0, 0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,
110 new Insets(0, 4, 0, 4), 0, 0));
112 myPanel.add(createAlignmentsPanel(),
113 new GridBagConstraints(1, 0, 1, 2, 0, 0, GridBagConstraints.NORTH, GridBagConstraints.BOTH,
114 new Insets(0, 4, 0, 4), 0, 0));
116 myPanel.add(createPlaceOnNewLinePanel(),
117 new GridBagConstraints(1, 2, 1, 1, 0, 0, GridBagConstraints.NORTH, GridBagConstraints.HORIZONTAL,
118 new Insets(0, 4, 0, 4), 0, 0));
119 myPanel.add(createForceBracesPanel(),
120 new GridBagConstraints(0, 2, 1, 1, 0, 0, GridBagConstraints.NORTH, GridBagConstraints.BOTH,
121 new Insets(0, 4, 0, 4), 0, 0));
123 myPanel.add(new JPanel() {
124 public Dimension getPreferredSize() {
125 return new Dimension(1, 1);
127 }, new GridBagConstraints(0, 3, 2, 1, 0, 0, GridBagConstraints.NORTH, GridBagConstraints.NONE,
128 new Insets(0, 0, 0, 0), 0, 0));
130 final JPanel previewPanel = createPreviewPanel();
131 myPanel.add(previewPanel,
132 new GridBagConstraints(2, 0, 1, 4, 1, 1, GridBagConstraints.NORTH, GridBagConstraints.BOTH,
133 new Insets(0, 0, 0, 4), 0, 0));
134 installPreviewPanel(previewPanel);
135 addPanelToWatch(myPanel);
138 private Component createKeepWhenReformatingPanel() {
139 OptionGroup optionGroup = new OptionGroup(ApplicationBundle.message("title.keep.when.reformatting"));
141 myKeepLineBreaks = createCheckBox(ApplicationBundle.message("checkbox.keep.when.reformatting.line.breaks"));
142 optionGroup.add(myKeepLineBreaks);
144 myKeepCommentAtFirstColumn = createCheckBox(ApplicationBundle.message("checkbox.keep.when.reformatting.comment.at.first.column"));
145 optionGroup.add(myKeepCommentAtFirstColumn);
147 myKeepMethodsInOneLine = createCheckBox(ApplicationBundle.message("checkbox.keep.when.reformatting.simple.methods.in.one.line"));
148 optionGroup.add(myKeepMethodsInOneLine);
150 myKeepSimpleBlocksInOneLine = createCheckBox(ApplicationBundle.message("checkbox.keep.when.reformatting.simple.blocks.in.one.line"));
151 optionGroup.add(myKeepSimpleBlocksInOneLine);
153 myKeepControlStatementInOneLine = createCheckBox(ApplicationBundle.message("checkbox.keep.when.reformatting.control.statement.in.one.line"));
154 optionGroup.add(myKeepControlStatementInOneLine);
157 return optionGroup.createPanel();
161 private JPanel createBracesPanel() {
162 OptionGroup optionGroup = new OptionGroup(ApplicationBundle.message("title.braces.placement"));
164 myClassDeclarationCombo = createBraceStyleCombo();
165 optionGroup.add(new JLabel(ApplicationBundle.message("combobox.brace.placement.class.declaration")), myClassDeclarationCombo);
167 myMethodDeclarationCombo = createBraceStyleCombo();
168 optionGroup.add(new JLabel(ApplicationBundle.message("combobox.brace.placement.method.declaration")), myMethodDeclarationCombo);
170 myOtherCombo = createBraceStyleCombo();
171 optionGroup.add(new JLabel(ApplicationBundle.message("combobox.brace.placement.other")), myOtherCombo);
173 myCbSpecialElseIfTreatment = createCheckBox(ApplicationBundle.message("checkbox.brace.special.else.if.treatment"));
174 optionGroup.add(myCbSpecialElseIfTreatment);
176 myCbIndentCaseFromSwitch = createCheckBox(ApplicationBundle.message("checkbox.brace.indent.case.from.switch"));
177 optionGroup.add(myCbIndentCaseFromSwitch);
179 return optionGroup.createPanel();
182 private JPanel createForceBracesPanel() {
183 OptionGroup optionGroup = new OptionGroup(ApplicationBundle.message("title.force.braces"));
185 myIfForceCombo = createForceBracesCombo();
186 optionGroup.add(new JLabel(ApplicationBundle.message("combobox.force.braces.if")), myIfForceCombo);
188 myForForceCombo = createForceBracesCombo();
189 optionGroup.add(new JLabel(ApplicationBundle.message("combobox.force.braces.for")), myForForceCombo);
191 myWhileForceCombo = createForceBracesCombo();
192 optionGroup.add(new JLabel(ApplicationBundle.message("combobox.force.braces.while")), myWhileForceCombo);
194 myDoWhileForceCombo = createForceBracesCombo();
195 optionGroup.add(new JLabel(ApplicationBundle.message("combobox.force.braces.do.while")), myDoWhileForceCombo);
197 return optionGroup.createPanel();
200 private JPanel createAlignmentsPanel() {
201 OptionGroup optionGroup = new OptionGroup(ApplicationBundle.message("title.align.when.multiline"));
203 myAlignDeclarationParameters = createCheckBox(ApplicationBundle.message("checkbox.align.multiline.method.parameters"));
204 optionGroup.add(myAlignDeclarationParameters);
206 myAlignCallParameters = createCheckBox(ApplicationBundle.message("checkbox.align.multiline.call.arguments"));
207 optionGroup.add(myAlignCallParameters);
209 myAlignExtendsList = createCheckBox(ApplicationBundle.message("checkbox.align.multiline.extends.list"));
210 optionGroup.add(myAlignExtendsList);
212 myAlignThrowsList = createCheckBox(ApplicationBundle.message("checkbox.align.multiline.throws.list"));
213 optionGroup.add(myAlignThrowsList);
215 myAlignParenthesizedExpression = createCheckBox(ApplicationBundle.message("checkbox.align.multiline.parenthesized.expression"));
216 optionGroup.add(myAlignParenthesizedExpression);
218 myAlignBinaryExpression = createCheckBox(ApplicationBundle.message("checkbox.align.multiline.binary.operation"));
219 optionGroup.add(myAlignBinaryExpression);
221 myAlignTernaryExpression = createCheckBox(ApplicationBundle.message("checkbox.align.multiline.ternary.operation"));
222 optionGroup.add(myAlignTernaryExpression);
224 myAlignAssignment = createCheckBox(ApplicationBundle.message("checkbox.align.multiline.assignments"));
225 optionGroup.add(myAlignAssignment);
227 myAlignForStatement = createCheckBox(ApplicationBundle.message("checkbox.align.multiline.for.statement"));
228 optionGroup.add(myAlignForStatement);
230 myAlignArrayInitializerExpression = createCheckBox(ApplicationBundle.message("checkbox.align.multiline.array.initializer"));
231 optionGroup.add(myAlignArrayInitializerExpression);
233 return optionGroup.createPanel();
236 private JPanel createPlaceOnNewLinePanel() {
237 OptionGroup optionGroup = new OptionGroup(ApplicationBundle.message("title.place.on.new.line"));
239 myCbElseOnNewline = createCheckBox(ApplicationBundle.message("checkbox.place.else.on.new.line"));
240 optionGroup.add(myCbElseOnNewline);
242 myCbWhileOnNewline = createCheckBox(ApplicationBundle.message("checkbox.place.while.on.new.line"));
243 optionGroup.add(myCbWhileOnNewline);
245 myCbCatchOnNewline = createCheckBox(ApplicationBundle.message("checkbox.place.catch.on.new.line"));
246 optionGroup.add(myCbCatchOnNewline);
248 myCbFinallyOnNewline = createCheckBox(ApplicationBundle.message("checkbox.place.finally.on.new.line"));
249 optionGroup.add(myCbFinallyOnNewline);
251 return optionGroup.createPanel();
254 private static JCheckBox createCheckBox(String text) {
255 return new JCheckBox(text);
258 private static JComboBox createForceBracesCombo() {
259 return new JComboBox(BRACE_FORCE_OPTIONS);
262 private static void setForceBracesComboValue(JComboBox comboBox, int value) {
263 for (int i = 0; i < BRACE_FORCE_VALUES.length; i++) {
264 int forceValue = BRACE_FORCE_VALUES[i];
265 if (forceValue == value) {
266 comboBox.setSelectedItem(BRACE_FORCE_OPTIONS[i]);
271 private static int getForceBracesValue(JComboBox comboBox) {
272 String selected = (String)comboBox.getSelectedItem();
273 for (int i = 0; i < BRACE_FORCE_OPTIONS.length; i++) {
274 String s = BRACE_FORCE_OPTIONS[i];
275 if (s.equals(selected)) {
276 return BRACE_FORCE_VALUES[i];
279 return 0;
282 private static JComboBox createBraceStyleCombo() {
283 return new JComboBox(BRACE_PLACEMENT_OPTIONS);
286 private static void setBraceStyleComboValue(JComboBox comboBox, int value) {
287 for (int i = 0; i < BRACE_PLACEMENT_OPTIONS.length; i++) {
288 if (BRACE_PLACEMENT_VALUES[i] == value) {
289 comboBox.setSelectedItem(BRACE_PLACEMENT_OPTIONS[i]);
290 return;
295 private static int getBraceComboValue(JComboBox comboBox) {
296 Object item = comboBox.getSelectedItem();
297 for (int i = 1; i < BRACE_PLACEMENT_OPTIONS.length; i++) {
298 if (BRACE_PLACEMENT_OPTIONS[i].equals(item)) {
299 return BRACE_PLACEMENT_VALUES[i];
302 return BRACE_PLACEMENT_VALUES[0];
305 private static JPanel createPreviewPanel() {
306 JPanel p = new JPanel(new BorderLayout());
307 p.setBorder(IdeBorderFactory.createTitledBorder(ApplicationBundle.message("title.preview")));
308 return p;
311 @NonNls
312 protected String getPreviewText() {
313 return
314 "public class Foo {\n" +
315 " public int[] X = new int[] { 1, 3, 5\n" +
316 " 7, 9, 11};\n" +
317 " public void foo(boolean a, int x,\n" +
318 " int y, int z) {\n" +
319 " label1: do {\n" +
320 " try {\n" +
321 " if(x > 0) {\n" +
322 " int someVariable = a ? \n" +
323 " x : \n" +
324 " y;\n" +
325 " int anotherVariable = a ? x\n" +
326 " : y;\n" +
327 " } else if (x < 0) {\n" +
328 " int someVariable = (y +\n" +
329 " z\n" +
330 " );\n" +
331 " someVariable = x = \n" +
332 " x +\n" +
333 " y;\n" +
334 " } else {\n" +
335 " label2:\n" +
336 " for (int i = 0;\n" +
337 " i < 5;\n" +
338 " i++) doSomething(i);\n" +
339 " }\n" +
340 " switch(a) {\n" +
341 " case 0: \n" +
342 " doCase0();\n" +
343 " break;\n" +
344 " default: \n" +
345 " doDefault();\n" +
346 " }\n" +
347 " }catch(Exception e) {\n" +
348 " processException(e.getMessage(),\n" +
349 " x + y, z, a);\n" +
350 " }finally {\n" +
351 " processFinally();\n" +
352 " }\n" +
353 " }while(true);\n" +
354 "\n" +
355 " if (2 < 3) return;\n" +
356 " if (3 < 4)\n" +
357 " return;\n" +
358 " do x++ while (x < 10000);\n" +
359 " while (x < 50000) x++;\n" +
360 " for (int i = 0; i < 5; i++) System.out.println(i);\n" +
361 " }\n" +
362 " private class InnerClass implements I1,\n" +
363 " I2 {\n" +
364 " public void bar() throws E1,\n" +
365 " E2 {\n" +
366 " }\n" +
367 " }\n" +
368 "}";
371 public boolean isModified(CodeStyleSettings settings) {
372 boolean isModified;
373 isModified = isModified(myCbElseOnNewline, settings.ELSE_ON_NEW_LINE);
374 isModified |= isModified(myCbWhileOnNewline, settings.WHILE_ON_NEW_LINE);
375 isModified |= isModified(myCbCatchOnNewline, settings.CATCH_ON_NEW_LINE);
376 isModified |= isModified(myCbFinallyOnNewline, settings.FINALLY_ON_NEW_LINE);
379 isModified |= isModified(myCbSpecialElseIfTreatment, settings.SPECIAL_ELSE_IF_TREATMENT);
380 isModified |= isModified(myCbIndentCaseFromSwitch, settings.INDENT_CASE_FROM_SWITCH);
383 isModified |= settings.BRACE_STYLE != getBraceComboValue(myOtherCombo);
384 isModified |= settings.CLASS_BRACE_STYLE != getBraceComboValue(myClassDeclarationCombo);
385 isModified |= settings.METHOD_BRACE_STYLE != getBraceComboValue(myMethodDeclarationCombo);
387 isModified |= isModified(myAlignAssignment, settings.ALIGN_MULTILINE_ASSIGNMENT);
388 isModified |= isModified(myAlignBinaryExpression, settings.ALIGN_MULTILINE_BINARY_OPERATION);
389 isModified |= isModified(myAlignCallParameters, settings.ALIGN_MULTILINE_PARAMETERS_IN_CALLS);
390 isModified |= isModified(myAlignDeclarationParameters, settings.ALIGN_MULTILINE_PARAMETERS);
391 isModified |= isModified(myAlignExtendsList, settings.ALIGN_MULTILINE_EXTENDS_LIST);
392 isModified |= isModified(myAlignForStatement, settings.ALIGN_MULTILINE_FOR);
393 isModified |= isModified(myAlignParenthesizedExpression, settings.ALIGN_MULTILINE_PARENTHESIZED_EXPRESSION);
394 isModified |= isModified(myAlignTernaryExpression, settings.ALIGN_MULTILINE_TERNARY_OPERATION);
395 isModified |= isModified(myAlignThrowsList, settings.ALIGN_MULTILINE_THROWS_LIST);
396 isModified |= isModified(myAlignArrayInitializerExpression, settings.ALIGN_MULTILINE_ARRAY_INITIALIZER_EXPRESSION);
398 isModified |= settings.FOR_BRACE_FORCE != getForceBracesValue(myForForceCombo);
399 isModified |= settings.IF_BRACE_FORCE != getForceBracesValue(myIfForceCombo);
400 isModified |= settings.WHILE_BRACE_FORCE != getForceBracesValue(myWhileForceCombo);
401 isModified |= settings.DOWHILE_BRACE_FORCE != getForceBracesValue(myDoWhileForceCombo);
403 isModified |= isModified(myKeepLineBreaks, settings.KEEP_LINE_BREAKS);
404 isModified |= isModified(myKeepCommentAtFirstColumn, settings.KEEP_FIRST_COLUMN_COMMENT);
405 isModified |= isModified(myKeepControlStatementInOneLine, settings.KEEP_CONTROL_STATEMENT_IN_ONE_LINE);
406 isModified |= isModified(myKeepSimpleBlocksInOneLine, settings.KEEP_SIMPLE_BLOCKS_IN_ONE_LINE);
407 isModified |= isModified(myKeepMethodsInOneLine, settings.KEEP_SIMPLE_METHODS_IN_ONE_LINE);
410 return isModified;
414 private static boolean isModified(JCheckBox checkBox, boolean value) {
415 return checkBox.isSelected() != value;
418 protected void resetImpl(final CodeStyleSettings settings) {
419 myCbElseOnNewline.setSelected(settings.ELSE_ON_NEW_LINE);
420 myCbWhileOnNewline.setSelected(settings.WHILE_ON_NEW_LINE);
421 myCbCatchOnNewline.setSelected(settings.CATCH_ON_NEW_LINE);
422 myCbFinallyOnNewline.setSelected(settings.FINALLY_ON_NEW_LINE);
424 myCbSpecialElseIfTreatment.setSelected(settings.SPECIAL_ELSE_IF_TREATMENT);
425 myCbIndentCaseFromSwitch.setSelected(settings.INDENT_CASE_FROM_SWITCH);
427 setBraceStyleComboValue(myOtherCombo, settings.BRACE_STYLE);
428 setBraceStyleComboValue(myClassDeclarationCombo, settings.CLASS_BRACE_STYLE);
429 setBraceStyleComboValue(myMethodDeclarationCombo, settings.METHOD_BRACE_STYLE);
431 myAlignAssignment.setSelected(settings.ALIGN_MULTILINE_ASSIGNMENT);
432 myAlignBinaryExpression.setSelected(settings.ALIGN_MULTILINE_BINARY_OPERATION);
433 myAlignCallParameters.setSelected(settings.ALIGN_MULTILINE_PARAMETERS_IN_CALLS);
434 myAlignDeclarationParameters.setSelected(settings.ALIGN_MULTILINE_PARAMETERS);
435 myAlignExtendsList.setSelected(settings.ALIGN_MULTILINE_EXTENDS_LIST);
436 myAlignForStatement.setSelected(settings.ALIGN_MULTILINE_FOR);
437 myAlignParenthesizedExpression.setSelected(settings.ALIGN_MULTILINE_PARENTHESIZED_EXPRESSION);
438 myAlignTernaryExpression.setSelected(settings.ALIGN_MULTILINE_TERNARY_OPERATION);
439 myAlignThrowsList.setSelected(settings.ALIGN_MULTILINE_THROWS_LIST);
440 myAlignArrayInitializerExpression.setSelected(settings.ALIGN_MULTILINE_ARRAY_INITIALIZER_EXPRESSION);
442 setForceBracesComboValue(myForForceCombo, settings.FOR_BRACE_FORCE);
443 setForceBracesComboValue(myIfForceCombo, settings.IF_BRACE_FORCE);
444 setForceBracesComboValue(myWhileForceCombo, settings.WHILE_BRACE_FORCE);
445 setForceBracesComboValue(myDoWhileForceCombo, settings.DOWHILE_BRACE_FORCE);
447 myKeepLineBreaks.setSelected(settings.KEEP_LINE_BREAKS);
448 myKeepCommentAtFirstColumn.setSelected(settings.KEEP_FIRST_COLUMN_COMMENT);
449 myKeepControlStatementInOneLine.setSelected(settings.KEEP_CONTROL_STATEMENT_IN_ONE_LINE);
450 myKeepSimpleBlocksInOneLine.setSelected(settings.KEEP_SIMPLE_BLOCKS_IN_ONE_LINE);
451 myKeepMethodsInOneLine.setSelected(settings.KEEP_SIMPLE_METHODS_IN_ONE_LINE);
455 protected EditorHighlighter createHighlighter(final EditorColorsScheme scheme) {
456 return JavaHighlighterFactory.createJavaHighlighter(scheme, LanguageLevel.HIGHEST);
459 public void apply(CodeStyleSettings settings) {
460 settings.ELSE_ON_NEW_LINE = myCbElseOnNewline.isSelected();
461 settings.WHILE_ON_NEW_LINE = myCbWhileOnNewline.isSelected();
462 settings.CATCH_ON_NEW_LINE = myCbCatchOnNewline.isSelected();
463 settings.FINALLY_ON_NEW_LINE = myCbFinallyOnNewline.isSelected();
466 settings.SPECIAL_ELSE_IF_TREATMENT = myCbSpecialElseIfTreatment.isSelected();
467 settings.INDENT_CASE_FROM_SWITCH = myCbIndentCaseFromSwitch.isSelected();
469 settings.BRACE_STYLE = getBraceComboValue(myOtherCombo);
470 settings.CLASS_BRACE_STYLE = getBraceComboValue(myClassDeclarationCombo);
471 settings.METHOD_BRACE_STYLE = getBraceComboValue(myMethodDeclarationCombo);
473 settings.ALIGN_MULTILINE_ASSIGNMENT = myAlignAssignment.isSelected();
474 settings.ALIGN_MULTILINE_BINARY_OPERATION = myAlignBinaryExpression.isSelected();
475 settings.ALIGN_MULTILINE_PARAMETERS_IN_CALLS = myAlignCallParameters.isSelected();
476 settings.ALIGN_MULTILINE_PARAMETERS = myAlignDeclarationParameters.isSelected();
477 settings.ALIGN_MULTILINE_EXTENDS_LIST = myAlignExtendsList.isSelected();
478 settings.ALIGN_MULTILINE_FOR = myAlignForStatement.isSelected();
479 settings.ALIGN_MULTILINE_PARENTHESIZED_EXPRESSION = myAlignParenthesizedExpression.isSelected();
480 settings.ALIGN_MULTILINE_TERNARY_OPERATION = myAlignTernaryExpression.isSelected();
481 settings.ALIGN_MULTILINE_THROWS_LIST = myAlignThrowsList.isSelected();
482 settings.ALIGN_MULTILINE_ARRAY_INITIALIZER_EXPRESSION = myAlignArrayInitializerExpression.isSelected();
483 // mySettings.LABEL_INDENT =
485 settings.FOR_BRACE_FORCE = getForceBracesValue(myForForceCombo);
486 settings.IF_BRACE_FORCE = getForceBracesValue(myIfForceCombo);
487 settings.WHILE_BRACE_FORCE = getForceBracesValue(myWhileForceCombo);
488 settings.DOWHILE_BRACE_FORCE = getForceBracesValue(myDoWhileForceCombo);
490 settings.KEEP_LINE_BREAKS = myKeepLineBreaks.isSelected();
491 settings.KEEP_FIRST_COLUMN_COMMENT = myKeepCommentAtFirstColumn.isSelected();
492 settings.KEEP_CONTROL_STATEMENT_IN_ONE_LINE = myKeepControlStatementInOneLine.isSelected();
493 settings.KEEP_SIMPLE_BLOCKS_IN_ONE_LINE = myKeepSimpleBlocksInOneLine.isSelected();
494 settings.KEEP_SIMPLE_METHODS_IN_ONE_LINE = myKeepMethodsInOneLine.isSelected();
498 @NotNull
499 protected FileType getFileType() {
500 return StdFileTypes.JAVA;
503 protected int getRightMargin() {
504 return -1;
507 public JComponent getPanel() {
508 return myPanel;
511 protected void prepareForReformat(final PsiFile psiFile) {
512 psiFile.putUserData(PsiUtil.FILE_LANGUAGE_LEVEL_KEY, LanguageLevel.HIGHEST);