/******************************************************************************* * Copyright (c) 2013 Zend Techologies Ltd. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Zend Technologies Ltd. - initial API and implementation *******************************************************************************/ package org.eclipse.php.formatter.ui.preferences; import org.eclipse.php.formatter.core.profiles.CodeFormatterPreferences; import org.eclipse.php.formatter.ui.FormatterMessages; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; public class BlankLinesTabPage extends ModifyDialogTabPage { private final String PREVIEW = "<?php\n" //$NON-NLS-1$ + "namespace test;\n" //$NON-NLS-1$ + "use test1;\n" //$NON-NLS-1$ + "use test2;\n" //$NON-NLS-1$ + "use test3;\n" //$NON-NLS-1$ + createPreviewHeader(FormatterMessages.BlankLinesTabPage_preview_header) + "class Example {" + //$NON-NLS-1$ " const CONST2 = 3;" + " var $theInt= 1;" + //$NON-NLS-1$ " public function foo($a, $b) {" + //$NON-NLS-1$ " switch($a) {" + //$NON-NLS-1$ " case 0: " + //$NON-NLS-1$ " $Other->doFoo();" + //$NON-NLS-1$ " break;" + //$NON-NLS-1$ " default:" + //$NON-NLS-1$ " $Other->doBaz();" + //$NON-NLS-1$ " }" + //$NON-NLS-1$ " }" + //$NON-NLS-1$ " function bar($v) {" + //$NON-NLS-1$ " for ($i= 0; $i < 10; $i++) {" + //$NON-NLS-1$ " $v->add($i);" + //$NON-NLS-1$ " }" + //$NON-NLS-1$ " }" + //$NON-NLS-1$ "} namespace test1;\n" + "interface MyInterface {}\n?>"; //$NON-NLS-1$ private boolean isInitialized = false; private NumberPreference namespaceDecl; private NumberPreference namespaceDeclAfter; // private NumberPreference useStatementsBefore; private NumberPreference useStatementsAfter; // private NumberPreference useStatementsBetween; private NumberPreference namespaceDeclBetween; private NumberPreference classDecl; private NumberPreference constantDecl; private NumberPreference fieldDecl; private NumberPreference methodDecl; private NumberPreference methodBegin; private NumberPreference methodEnd; private NumberPreference classEnd; private NumberPreference emptyLinesToPreserve; private CodeFormatterPreview fPreview; /** * Create a new BlankLinesTabPage. * * @param modifyDialog * The main configuration dialog * * @param workingValues * The values wherein the options are stored. */ public BlankLinesTabPage(ModifyDialog modifyDialog, CodeFormatterPreferences codeFormatterPreferences) { super(modifyDialog, codeFormatterPreferences); } @Override protected void doCreatePreferences(Composite composite, int numColumns) { Group group = createGroup(numColumns, composite, FormatterMessages.BlankLinesTabPage_namespace_group_title); namespaceDecl = createNumberPref(group, numColumns, FormatterMessages.BlankLinesTabPage_namespace_option_before_namespace, 0, 32); namespaceDecl.setValue(codeFormatterPreferences.blank_lines_before_namespace); namespaceDeclAfter = createNumberPref(group, numColumns, FormatterMessages.BlankLinesTabPage_namespace_option_after_namespace, 0, 32); namespaceDeclAfter.setValue(codeFormatterPreferences.blank_lines_after_namespace); // useStatementsBefore = createNumberPref( // group, // numColumns, // FormatterMessages.BlankLinesTabPage_namespace_option_before_use_statements, // 0, 32); // useStatementsBefore // .setValue(codeFormatterPreferences.blank_lines_before_use_statements); useStatementsAfter = createNumberPref(group, numColumns, FormatterMessages.BlankLinesTabPage_namespace_option_after_use_statements, 0, 32); useStatementsAfter.setValue(codeFormatterPreferences.blank_lines_after_use_statements); // useStatementsBetween = createNumberPref( // group, // numColumns, // FormatterMessages.BlankLinesTabPage_namespace_option_between_use_statements, // 0, 32); // useStatementsBetween // .setValue(codeFormatterPreferences.blank_lines_between_use_statements); namespaceDeclBetween = createNumberPref(group, numColumns, FormatterMessages.BlankLinesTabPage_namespace_option_between_namespaces, 0, 32); namespaceDeclBetween.setValue(codeFormatterPreferences.blank_lines_between_namespaces); group = createGroup(numColumns, composite, FormatterMessages.BlankLinesTabPage_class_group_title); classDecl = createNumberPref(group, numColumns, FormatterMessages.BlankLinesTabPage_class_option_before_class_declarations, 0, 32); classDecl.setValue(codeFormatterPreferences.blank_line_before_class_declaration); constantDecl = createNumberPref(group, numColumns, FormatterMessages.BlankLinesTabPage_class_option_before_constant_decls, 0, 32); constantDecl.setValue(codeFormatterPreferences.blank_line_before_constant_declaration); fieldDecl = createNumberPref(group, numColumns, FormatterMessages.BlankLinesTabPage_class_option_before_field_decls, 0, 32); fieldDecl.setValue(codeFormatterPreferences.blank_line_before_field_declaration); methodDecl = createNumberPref(group, numColumns, FormatterMessages.BlankLinesTabPage_class_option_before_method_decls, 0, 32); methodDecl.setValue(codeFormatterPreferences.blank_line_before_method_declaration); methodBegin = createNumberPref(group, numColumns, FormatterMessages.BlankLinesTabPage_class_option_at_beginning_of_method_body, 0, 32); methodBegin.setValue(codeFormatterPreferences.blank_line_at_begin_of_method); methodEnd = createNumberPref(group, numColumns, FormatterMessages.BlankLinesTabPage_class_option_at_end_of_method_body, 0, 32); methodEnd.setValue(codeFormatterPreferences.blank_line_at_end_of_method); classEnd = createNumberPref(group, numColumns, FormatterMessages.BlankLinesTabPage_class_option_at_end_of_class_body, 0, 32); classEnd.setValue(codeFormatterPreferences.blank_line_at_end_of_class); group = createGroup(numColumns, composite, FormatterMessages.BlankLinesTabPage_blank_lines_group_title); emptyLinesToPreserve = createNumberPref(group, numColumns, FormatterMessages.BlankLinesTabPage_blank_lines_option_empty_lines_to_preserve, 0, 32); emptyLinesToPreserve.setValue(codeFormatterPreferences.blank_line_preserve_empty_lines); isInitialized = true; } @Override protected void initializePage() { fPreview.setPreviewText(PREVIEW); } /* * (non-Javadoc) * * @see * org.eclipse.jdt.internal.ui.preferences.formatter.ModifyDialogTabPage * #doCreateJavaPreview(org.eclipse.swt.widgets.Composite) */ @Override protected PHPPreview doCreatePhpPreview(Composite parent) { fPreview = new CodeFormatterPreview(codeFormatterPreferences, parent); return fPreview; } /* * (non-Javadoc) * * @see * org.eclipse.jdt.internal.ui.preferences.formatter.ModifyDialogTabPage * #doUpdatePreview() */ @Override protected void doUpdatePreview() { if (fPreview != null) { fPreview.update(); } } @Override protected void updatePreferences() { if (isInitialized) { codeFormatterPreferences.blank_line_before_class_declaration = classDecl.getValue(); codeFormatterPreferences.blank_line_before_constant_declaration = constantDecl.getValue(); codeFormatterPreferences.blank_line_before_field_declaration = fieldDecl.getValue(); codeFormatterPreferences.blank_line_before_method_declaration = methodDecl.getValue(); codeFormatterPreferences.blank_line_at_begin_of_method = methodBegin.getValue(); codeFormatterPreferences.blank_line_preserve_empty_lines = emptyLinesToPreserve.getValue(); codeFormatterPreferences.blank_line_at_end_of_class = classEnd.getValue(); codeFormatterPreferences.blank_line_at_end_of_method = methodEnd.getValue(); // namespace codeFormatterPreferences.blank_lines_before_namespace = namespaceDecl.getValue(); codeFormatterPreferences.blank_lines_after_namespace = namespaceDeclAfter.getValue(); // codeFormatterPreferences.blank_lines_before_use_statements = // useStatementsBefore // .getValue(); codeFormatterPreferences.blank_lines_after_use_statements = useStatementsAfter.getValue(); // codeFormatterPreferences.blank_lines_between_use_statements = // useStatementsBetween // .getValue(); codeFormatterPreferences.blank_lines_between_namespaces = namespaceDeclBetween.getValue(); } } }