/******************************************************************************* * Copyright (c) 2000, 2003 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package net.sourceforge.phpdt.internal.ui.preferences; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; //import java.text.Collator; import java.util.ArrayList; //import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.Map; //import java.util.SortedSet; import java.util.StringTokenizer; //import java.util.TreeSet; import net.sourceforge.phpdt.core.JavaCore; import net.sourceforge.phpdt.internal.ui.IJavaHelpContextIds; import net.sourceforge.phpdt.internal.ui.dialogs.StatusInfo; import net.sourceforge.phpdt.internal.ui.dialogs.StatusUtil; import net.sourceforge.phpdt.internal.ui.text.IPHPPartitions; import net.sourceforge.phpdt.internal.ui.text.PreferencesAdapter; import net.sourceforge.phpdt.internal.ui.util.TabFolderLayout; import net.sourceforge.phpdt.ui.PreferenceConstants; import net.sourceforge.phpdt.ui.text.JavaTextTools; import net.sourceforge.phpdt.ui.text.PHPSourceViewerConfiguration; import net.sourceforge.phpeclipse.PHPeclipsePlugin; import net.sourceforge.phpeclipse.phpeditor.EditorUtility; import net.sourceforge.phpeclipse.phpeditor.JavaSourceViewer; import net.sourceforge.phpeclipse.preferences.ColorEditor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Preferences; import org.eclipse.jface.action.Action; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferenceConverter; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.text.Document; import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.source.SourceViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.events.KeyListener; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.RGB; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.RowLayout; import org.eclipse.swt.widgets.Button; //import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Link; import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.TabFolder; import org.eclipse.swt.widgets.TabItem; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.dialogs.PreferencesUtil; import org.eclipse.ui.editors.text.EditorsUI; import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants; import org.eclipse.ui.texteditor.AnnotationPreference; import org.eclipse.ui.texteditor.ChainedPreferenceStore; import org.eclipse.ui.texteditor.MarkerAnnotationPreferences; /** * The page for setting the editor options. */ public class JavaEditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { private static final String BOLD = PreferenceConstants.EDITOR_BOLD_SUFFIX; private static final String ITALIC = PreferenceConstants.EDITOR_ITALIC_SUFFIX; private static final String UNDERLINE = PreferenceConstants.EDITOR_UNDERLINE_SUFFIX; private static final String STRIKETHROUGH = PreferenceConstants.EDITOR_STRIKETHROUGH_SUFFIX; private static final String COMPILER_TASK_TAGS = JavaCore.COMPILER_TASK_TAGS; private static final String DELIMITER = PreferencesMessages .getString("JavaEditorPreferencePage.navigation.delimiter"); //$NON-NLS-1$ /** The keys of the overlay store. */ public final OverlayPreferenceStore.OverlayKey[] fKeys; private final String[][] fSyntaxColorListModel = new String[][] { { PreferencesMessages.getString("JavaEditorPreferencePage.multiLineComment"), PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.singleLineComment"), PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.tags"), PreferenceConstants.EDITOR_PHP_TAG_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.keywords"), PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR }, { PreferencesMessages.getString("JavaEditorPreferencePage.functionNames"), PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.variables"), PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.variables_dollar"), PreferenceConstants.EDITOR_PHP_VARIABLE_DOLLAR_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.constants"), PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.types"), PreferenceConstants.EDITOR_PHP_TYPE_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.strings_dq"), PreferenceConstants.EDITOR_STRING_COLOR_DQ }, { PreferencesMessages.getString("JavaEditorPreferencePage.strings_sq"), PreferenceConstants.EDITOR_STRING_COLOR_SQ }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.others"), PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.operators"), PreferenceConstants.EDITOR_PHP_OPERATOR_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.returnKeyword"), PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_COLOR }, { PreferencesMessages.getString("JavaEditorPreferencePage.braces"), PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.phpDocKeywords"), PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.phpDocHtmlTags"), PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.phpDocLinks"), PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.phpDocOthers"), PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR } //$NON-NLS-1$ }; private final String[][] fAppearanceColorListModel = new String[][] { { PreferencesMessages.getString("JavaEditorPreferencePage.matchingBracketsHighlightColor2"), PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.currentLineHighlighColor"), AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.printMarginColor2"), AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.findScopeColor2"), PreferenceConstants.EDITOR_FIND_SCOPE_COLOR }, //$NON-NLS-1$ { PreferencesMessages.getString("JavaEditorPreferencePage.linkColor2"), PreferenceConstants.EDITOR_LINK_COLOR }, //$NON-NLS-1$ }; // private final String[][] fAnnotationColorListModel; // private final String[][] fAnnotationDecorationListModel = new String[][]{ // { // PreferencesMessages // .getString("JavaEditorPreferencePage.AnnotationDecoration.NONE"), // AnnotationPreference.STYLE_NONE}, // //$NON-NLS-1$ // { // PreferencesMessages // .getString("JavaEditorPreferencePage.AnnotationDecoration.SQUIGGLIES"), // AnnotationPreference.STYLE_SQUIGGLIES}, // //$NON-NLS-1$ // { // PreferencesMessages // .getString("JavaEditorPreferencePage.AnnotationDecoration.UNDERLINE"), // AnnotationPreference.STYLE_UNDERLINE}, // //$NON-NLS-1$ // { // PreferencesMessages // .getString("JavaEditorPreferencePage.AnnotationDecoration.BOX"), // AnnotationPreference.STYLE_BOX}, // //$NON-NLS-1$ // { // PreferencesMessages // .getString("JavaEditorPreferencePage.AnnotationDecoration.IBEAM"), // AnnotationPreference.STYLE_IBEAM} //$NON-NLS-1$ // }; private OverlayPreferenceStore fOverlayStore; private JavaTextTools fJavaTextTools; private JavaEditorHoverConfigurationBlock fJavaEditorHoverConfigurationBlock; private FoldingConfigurationBlock fFoldingConfigurationBlock; private Map fColorButtons = new HashMap(); private Map fCheckBoxes = new HashMap(); private SelectionListener fCheckBoxListener = new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } public void widgetSelected(SelectionEvent e) { Button button = (Button) e.widget; fOverlayStore.setValue((String) fCheckBoxes.get(button), button .getSelection()); } }; private Map fTextFields = new HashMap(); private ModifyListener fTextFieldListener = new ModifyListener() { public void modifyText(ModifyEvent e) { Text text = (Text) e.widget; fOverlayStore.setValue((String) fTextFields.get(text), text .getText()); } }; private ArrayList fNumberFields = new ArrayList(); private ModifyListener fNumberFieldListener = new ModifyListener() { public void modifyText(ModifyEvent e) { numberFieldChanged((Text) e.widget); } }; private List fSyntaxColorList; private List fAppearanceColorList; // private List fContentAssistColorList; //private List fAnnotationList; private ColorEditor fSyntaxForegroundColorEditor; private ColorEditor fAppearanceColorEditor; //private ColorEditor fAnnotationForegroundColorEditor; //private ColorEditor fContentAssistColorEditor; private ColorEditor fBackgroundColorEditor; private Button fBackgroundDefaultRadioButton; private Button fBackgroundCustomRadioButton; private Button fBackgroundColorButton; private Button fBoldCheckBox; private Button fItalicCheckBox; private Button fUnderlineCheckBox; private Button fStrikeThroughCheckBox; // private Button fAddJavaDocTagsButton; private Button fEscapeStringsButtonDQ; private Button fEscapeStringsButtonSQ; // private Button fGuessMethodArgumentsButton; private SourceViewer fPreviewViewer; private Color fBackgroundColor; //private Control fAutoInsertDelayText; //private Control fAutoInsertJavaTriggerText; //private Control fAutoInsertJavaDocTriggerText; //private Label fAutoInsertDelayLabel; //private Label fAutoInsertJavaTriggerLabel; //private Label fAutoInsertJavaDocTriggerLabel; //private Button; //private Combo fDecorationStyleCombo; //private Button fHighlightInTextCheckBox; //private Button fShowInOverviewRulerCheckBox; //private Button fShowInVerticalRulerCheckBox; private Text fBrowserLikeLinksKeyModifierText; private Button fBrowserLikeLinksCheckBox; private StatusInfo fBrowserLikeLinksKeyModifierStatus; // private Button fCompletionInsertsRadioButton; // private Button fCompletionOverwritesRadioButton; // private Button fStickyOccurrencesButton; /** * Creates a new preference page. */ public JavaEditorPreferencePage() { setDescription(PreferencesMessages.getString("JavaEditorPreferencePage.description")); //$NON-NLS-1$ setPreferenceStore(PHPeclipsePlugin.getDefault().getPreferenceStore()); MarkerAnnotationPreferences markerAnnotationPreferences = new MarkerAnnotationPreferences(); fKeys = createOverlayStoreKeys(markerAnnotationPreferences); fOverlayStore = new OverlayPreferenceStore(getPreferenceStore(), fKeys); // fAnnotationColorListModel = // createAnnotationTypeListModel(markerAnnotationPreferences); } private OverlayPreferenceStore.OverlayKey[] createOverlayStoreKeys( MarkerAnnotationPreferences preferences) { ArrayList overlayKeys = new ArrayList(); Iterator e = preferences.getAnnotationPreferences().iterator(); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_FOREGROUND_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_FOREGROUND_DEFAULT_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_BACKGROUND_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,PreferenceConstants.EDITOR_TAB_WIDTH)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_BOLD)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_ITALIC)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_UNDERLINE)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_STRIKETHROUGH)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_ITALIC)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_UNDERLINE)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_KEYWORD_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_KEYWORD_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_KEYWORD_STRIKETHROUGH)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_TAG_COLOR)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TAG_BOLD)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TAG_ITALIC)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TAG_UNDERLINE)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TAG_STRIKETHROUGH)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_BOLD)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_ITALIC)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_UNDERLINE)); overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_VARIABLE_DOLLAR_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_DOLLAR_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_DOLLAR_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_DOLLAR_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_DOLLAR_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_CONSTANT_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_CONSTANT_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_CONSTANT_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_CONSTANT_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_TYPE_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TYPE_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TYPE_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TYPE_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TYPE_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_STRING_COLOR_DQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_BOLD_DQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_ITALIC_DQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_UNDERLINE_DQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_STRIKETHROUGH_DQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_STRING_COLOR_SQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_BOLD_SQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_ITALIC_SQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_UNDERLINE_SQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_STRIKETHROUGH_SQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_DEFAULT_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_DEFAULT_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_DEFAULT_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_TASK_TAG_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_TASK_TAG_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_TASK_TAG_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_TASK_TAG_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_TASK_TAG_STRIKETHROUGH)); // overlayKeys.add(new // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING_DQ, // PreferenceConstants.EDITOR_JAVA_METHOD_NAME_COLOR)); // overlayKeys.add(new // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, // PreferenceConstants.EDITOR_JAVA_METHOD_NAME_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_OPERATOR_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_OPERATOR_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_OPERATOR_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_OPERATOR_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_OPERATOR_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_KEYWORD_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_KEYWORD_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_KEYWORD_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_KEYWORD_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_TAG_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_TAG_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_TAG_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_LINKS_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_LINKS_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_LINKS_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_LINKS_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_DEFAULT_ITALIC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_DEFAULT_UNDERLINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_DEFAULT_STRIKETHROUGH)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_MATCHING_BRACKETS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN)); // overlayKeys.add(new // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, // PreferenceConstants.EDITOR_MARK_OCCURRENCES)); // overlayKeys.add(new // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, // PreferenceConstants.EDITOR_STICKY_OCCURRENCES)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_FIND_SCOPE_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_LINK_COLOR)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_CORRECTION_INDICATION)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,AbstractDecoratedTextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SPACES_FOR_TABS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_AUTOACTIVATION)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_AUTOINSERT)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_ORDER_PROPOSALS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_CASE_SENSITIVITY)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_ADDIMPORT)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_INSERT_COMPLETION)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SMART_PASTE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_CLOSE_STRINGS_DQ_PHP)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_CLOSE_STRINGS_SQ_PHP)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_CLOSE_BRACKETS_PHP)); // overlayKeys // .add(new OverlayPreferenceStore.OverlayKey( // OverlayPreferenceStore.BOOLEAN, // PreferenceConstants.EDITOR_CLOSE_BRACES)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_CLOSE_JAVADOCS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_WRAP_WORDS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_WRAP_STRINGS_DQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_ESCAPE_STRINGS_DQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_WRAP_STRINGS_SQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_ESCAPE_STRINGS_SQ)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_FORMAT_JAVADOCS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SMART_HOME_END)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SUB_WORD_NAVIGATION)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_DISABLE_OVERWRITE_MODE)); // overlayKeys.add(new // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, // PreferenceConstants.EDITOR_SHOW_TEXT_HOVER_AFFORDANCE)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIERS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIER_MASKS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER)); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK)); while (e.hasNext()) { AnnotationPreference info = (AnnotationPreference) e.next(); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, info.getColorPreferenceKey())); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, info.getTextPreferenceKey())); if (info.getHighlightPreferenceKey() != null) overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, info.getHighlightPreferenceKey())); overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, info.getOverviewRulerPreferenceKey())); if (info.getVerticalRulerPreferenceKey() != null) overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, info.getVerticalRulerPreferenceKey())); if (info.getTextStylePreferenceKey() != null) overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, info.getTextStylePreferenceKey())); } OverlayPreferenceStore.OverlayKey[] keys = new OverlayPreferenceStore.OverlayKey[overlayKeys.size()]; overlayKeys.toArray(keys); return keys; } /* * @see IWorkbenchPreferencePage#init() */ public void init(IWorkbench workbench) { } /* * @see PreferencePage#createControl(Composite) */ public void createControl(Composite parent) { super.createControl(parent); PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), IJavaHelpContextIds.JAVA_EDITOR_PREFERENCE_PAGE); } private void handleSyntaxColorListSelection () { int i = fSyntaxColorList.getSelectionIndex (); String key = fSyntaxColorListModel[i][1]; RGB rgb = PreferenceConverter.getColor (fOverlayStore, key); fSyntaxForegroundColorEditor.setColorValue (rgb); fBoldCheckBox.setSelection (fOverlayStore.getBoolean (key + BOLD)); fItalicCheckBox.setSelection (fOverlayStore.getBoolean (key + ITALIC)); fUnderlineCheckBox.setSelection (fOverlayStore.getBoolean (key + UNDERLINE)); fStrikeThroughCheckBox.setSelection (fOverlayStore.getBoolean (key + STRIKETHROUGH)); } private void handleAppearanceColorListSelection() { int i = fAppearanceColorList.getSelectionIndex(); String key = fAppearanceColorListModel[i][1]; RGB rgb = PreferenceConverter.getColor(fOverlayStore, key); fAppearanceColorEditor.setColorValue(rgb); } // private void handleAnnotationListSelection() { // int i = fAnnotationList.getSelectionIndex(); // String key = fAnnotationColorListModel[i][1]; // RGB rgb = PreferenceConverter.getColor(fOverlayStore, key); // fAnnotationForegroundColorEditor.setColorValue(rgb); // key = fAnnotationColorListModel[i][2]; // boolean showInText = fOverlayStore.getBoolean(key); // fShowInTextCheckBox.setSelection(showInText); // key = fAnnotationColorListModel[i][6]; // if (key != null) { // fDecorationStyleCombo.setEnabled(showInText); // for (int j = 0; j < fAnnotationDecorationListModel.length; j++) { // String value = fOverlayStore.getString(key); // if (fAnnotationDecorationListModel[j][1].equals(value)) { // fDecorationStyleCombo.setText(fAnnotationDecorationListModel[j][0]); // break; // } // } // } else { // fDecorationStyleCombo.setEnabled(false); // fDecorationStyleCombo.setText(fAnnotationDecorationListModel[1][0]); // // set // // selection // // to // // squigglies // // if // // the // // key // // is // // not // // there // // (legacy // // support) // } // key = fAnnotationColorListModel[i][3]; // fShowInOverviewRulerCheckBox.setSelection(fOverlayStore.getBoolean(key)); // key = fAnnotationColorListModel[i][4]; // if (key != null) { // fHighlightInTextCheckBox.setSelection(fOverlayStore.getBoolean(key)); // fHighlightInTextCheckBox.setEnabled(true); // } else // fHighlightInTextCheckBox.setEnabled(false); // key = fAnnotationColorListModel[i][5]; // if (key != null) { // fShowInVerticalRulerCheckBox.setSelection(fOverlayStore.getBoolean(key)); // fShowInVerticalRulerCheckBox.setEnabled(true); // } else { // fShowInVerticalRulerCheckBox.setSelection(true); // fShowInVerticalRulerCheckBox.setEnabled(false); // } // } private Control createSyntaxPage(Composite parent) { Composite colorComposite = new Composite(parent, SWT.NULL); colorComposite.setLayout (new GridLayout()); Group backgroundComposite = new Group (colorComposite, SWT.SHADOW_ETCHED_IN); backgroundComposite.setLayout(new RowLayout()); backgroundComposite.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.backgroundColor"));//$NON-NLS-1$ // SelectionListener backgroundSelectionListener = new SelectionListener() { public void widgetSelected (SelectionEvent e) { boolean custom = fBackgroundCustomRadioButton.getSelection (); fBackgroundColorButton.setEnabled (custom); fOverlayStore.setValue (PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR, !custom); } public void widgetDefaultSelected(SelectionEvent e) { } }; fBackgroundDefaultRadioButton = new Button(backgroundComposite, SWT.RADIO | SWT.LEFT); fBackgroundDefaultRadioButton.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.systemDefault")); //$NON-NLS-1$ fBackgroundDefaultRadioButton.addSelectionListener (backgroundSelectionListener); fBackgroundCustomRadioButton = new Button(backgroundComposite, SWT.RADIO | SWT.LEFT); fBackgroundCustomRadioButton.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.custom")); //$NON-NLS-1$ fBackgroundCustomRadioButton.addSelectionListener (backgroundSelectionListener); fBackgroundColorEditor = new ColorEditor(backgroundComposite); fBackgroundColorButton = fBackgroundColorEditor.getButton (); Label label = new Label(colorComposite, SWT.LEFT); label.setText (PreferencesMessages.getString("JavaEditorPreferencePage.foreground")); //$NON-NLS-1$ label.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); Composite editorComposite = new Composite (colorComposite, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 2; layout.marginHeight = 0; layout.marginWidth = 0; editorComposite.setLayout(layout); GridData gd = new GridData (GridData.FILL_BOTH); editorComposite.setLayoutData (gd); fSyntaxColorList = new List (editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER); gd = new GridData (GridData.FILL_BOTH); gd.heightHint = convertHeightInCharsToPixels (5); fSyntaxColorList.setLayoutData (gd); Composite stylesComposite = new Composite (editorComposite, SWT.NONE); layout = new GridLayout (); layout.marginHeight = 0; layout.marginWidth = 0; layout.numColumns = 2; stylesComposite.setLayout(layout); stylesComposite.setLayoutData (new GridData(GridData.FILL_BOTH)); label = new Label(stylesComposite, SWT.LEFT); label.setText(PreferencesMessages.getString ("JavaEditorPreferencePage.color")); //$NON-NLS-1$ gd = new GridData(); gd.horizontalAlignment = GridData.BEGINNING; label.setLayoutData(gd); fSyntaxForegroundColorEditor = new ColorEditor(stylesComposite); Button foregroundColorButton = fSyntaxForegroundColorEditor.getButton(); gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalAlignment = GridData.BEGINNING; foregroundColorButton.setLayoutData (gd); fBoldCheckBox = new Button (stylesComposite, SWT.CHECK); fBoldCheckBox.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.bold")); //$NON-NLS-1$ gd = new GridData (GridData.FILL_HORIZONTAL); gd.horizontalAlignment = GridData.BEGINNING; gd.horizontalSpan = 2; fBoldCheckBox.setLayoutData (gd); fItalicCheckBox = new Button (stylesComposite, SWT.CHECK); fItalicCheckBox.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.italic")); //$NON-NLS-1$ gd = new GridData (GridData.FILL_HORIZONTAL); gd.horizontalAlignment = GridData.BEGINNING; gd.horizontalSpan = 2; fItalicCheckBox.setLayoutData (gd); fUnderlineCheckBox = new Button (stylesComposite, SWT.CHECK); fUnderlineCheckBox.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.underline")); //$NON-NLS-1$ gd = new GridData (GridData.FILL_HORIZONTAL); gd.horizontalAlignment = GridData.BEGINNING; gd.horizontalSpan = 2; fUnderlineCheckBox.setLayoutData (gd); fStrikeThroughCheckBox = new Button (stylesComposite, SWT.CHECK); fStrikeThroughCheckBox.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.strikethrough")); //$NON-NLS-1$ gd = new GridData (GridData.FILL_HORIZONTAL); gd.horizontalAlignment = GridData.BEGINNING; gd.horizontalSpan = 2; fStrikeThroughCheckBox.setLayoutData (gd); label = new Label (colorComposite, SWT.LEFT); label.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.preview")); //$NON-NLS-1$ label.setLayoutData (new GridData (GridData.FILL_HORIZONTAL)); Control previewer = createPreviewer (colorComposite); gd = new GridData (GridData.FILL_BOTH); gd.widthHint = convertWidthInCharsToPixels (20); gd.heightHint = convertHeightInCharsToPixels (5); previewer.setLayoutData (gd); fSyntaxColorList.addSelectionListener (new SelectionListener () { public void widgetDefaultSelected(SelectionEvent e) { // do nothing } public void widgetSelected(SelectionEvent e) { handleSyntaxColorListSelection(); } }); foregroundColorButton.addSelectionListener (new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { // do nothing } public void widgetSelected(SelectionEvent e) { int i = fSyntaxColorList.getSelectionIndex(); String key = fSyntaxColorListModel[i][1]; PreferenceConverter.setValue(fOverlayStore, key, fSyntaxForegroundColorEditor.getColorValue ()); } }); fBackgroundColorButton.addSelectionListener (new SelectionListener() { public void widgetDefaultSelected (SelectionEvent e) { // do nothing } public void widgetSelected (SelectionEvent e) { PreferenceConverter.setValue (fOverlayStore, PreferenceConstants.EDITOR_BACKGROUND_COLOR, fBackgroundColorEditor.getColorValue ()); } }); fBoldCheckBox.addSelectionListener (new SelectionListener () { public void widgetDefaultSelected (SelectionEvent e) { // do nothing } public void widgetSelected (SelectionEvent e) { int i = fSyntaxColorList.getSelectionIndex (); String key = fSyntaxColorListModel[i][1]; fOverlayStore.setValue (key + BOLD, fBoldCheckBox.getSelection ()); } }); fItalicCheckBox.addSelectionListener (new SelectionListener () { public void widgetDefaultSelected (SelectionEvent e) { // do nothing } public void widgetSelected (SelectionEvent e) { int i = fSyntaxColorList.getSelectionIndex (); String key = fSyntaxColorListModel[i][1]; fOverlayStore.setValue (key + ITALIC, fItalicCheckBox.getSelection ()); } }); fUnderlineCheckBox.addSelectionListener (new SelectionListener () { public void widgetDefaultSelected (SelectionEvent e) { // do nothing } public void widgetSelected (SelectionEvent e) { int i = fSyntaxColorList.getSelectionIndex (); String key = fSyntaxColorListModel[i][1]; fOverlayStore.setValue (key + UNDERLINE, fUnderlineCheckBox.getSelection ()); } }); fStrikeThroughCheckBox.addSelectionListener (new SelectionListener () { public void widgetDefaultSelected (SelectionEvent e) { // do nothing } public void widgetSelected (SelectionEvent e) { int i = fSyntaxColorList.getSelectionIndex (); String key = fSyntaxColorListModel[i][1]; fOverlayStore.setValue (key + STRIKETHROUGH, fStrikeThroughCheckBox.getSelection ()); } }); return colorComposite; } private Control createPreviewer(Composite parent) { Preferences coreStore = createTemporaryCorePreferenceStore(); fJavaTextTools = new JavaTextTools(fOverlayStore, coreStore, false); IPreferenceStore generalTextStore = EditorsUI.getPreferenceStore(); IPreferenceStore store = new ChainedPreferenceStore ( new IPreferenceStore[] { fOverlayStore, new PreferencesAdapter (createTemporaryCorePreferenceStore ()), generalTextStore }); fPreviewViewer = new JavaSourceViewer(parent, null, null, false, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER, store); JavaTextTools tools = PHPeclipsePlugin.getDefault().getJavaTextTools(); PHPSourceViewerConfiguration configuration = new PHPSourceViewerConfiguration( tools.getColorManager(), store, null, IPHPPartitions.PHP_PARTITIONING); // PHPSourceViewerConfiguration configuration =new // PHPSourceViewerConfiguration(fJavaTextTools, null, // IPHPPartitions.PHP_PARTITIONING); fPreviewViewer.configure(configuration); Font font = JFaceResources.getFont (PreferenceConstants.EDITOR_TEXT_FONT); fPreviewViewer.getTextWidget ().setFont (font); new JavaSourcePreviewerUpdater (fPreviewViewer, configuration, store); fPreviewViewer.setEditable (false); String content = loadPreviewContentFromFile ("ColorSettingPreviewCode.txt"); //$NON-NLS-1$ IDocument document = new Document (content); fJavaTextTools.setupJavaDocumentPartitioner (document, IPHPPartitions.PHP_PARTITIONING); fPreviewViewer.setDocument (document); return fPreviewViewer.getControl (); } private Preferences createTemporaryCorePreferenceStore() { Preferences result = new Preferences(); result.setValue (COMPILER_TASK_TAGS, "TASK"); //$NON-NLS-1$ return result; } private Control createAppearancePage(Composite parent) { Composite appearanceComposite = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 2; appearanceComposite.setLayout(layout); // Inserts a hyper-link to the General Editor preferences page // TODO Can probably be removed post 1.5.0? String label = PreferencesMessages .getString("JavaEditorPreferencePage.appearanceTabLink"); Link link = new Link(appearanceComposite, SWT.NONE); GridData gridPosition = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gridPosition.horizontalSpan = 2; link.setLayoutData(gridPosition); link.setText(label); link.addListener(SWT.Selection, new Listener () { public void handleEvent(Event event) { String u = event.text; PreferencesUtil.createPreferenceDialogOn(getShell(), u, null, null); } }); String tooltip = PreferencesMessages .getString("JavaEditorPreferencePage.appearanceTabTooltip"); link.setToolTipText(tooltip); label = PreferencesMessages .getString("JavaEditorPreferencePage.displayedTabWidth"); //$NON-NLS-1$ addTextField(appearanceComposite, label, PreferenceConstants.EDITOR_TAB_WIDTH, 3, 0, true); label = PreferencesMessages .getString("JavaEditorPreferencePage.printMarginColumn"); //$NON-NLS-1$ addTextField( appearanceComposite, label, AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN, 3, 0, true); label = PreferencesMessages .getString("JavaEditorPreferencePage.showOverviewRuler"); //$NON-NLS-1$ addCheckBox( appearanceComposite, label, AbstractDecoratedTextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER, 0); label = PreferencesMessages .getString("JavaEditorPreferencePage.highlightMatchingBrackets"); //$NON-NLS-1$ addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_MATCHING_BRACKETS, 0); label = PreferencesMessages .getString("JavaEditorPreferencePage.highlightCurrentLine"); //$NON-NLS-1$ addCheckBox( appearanceComposite, label, AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE, 0); label = PreferencesMessages .getString("JavaEditorPreferencePage.showPrintMargin"); //$NON-NLS-1$ addCheckBox( appearanceComposite, label, AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN, 0); label = PreferencesMessages .getString("JavaEditorPreferencePage.markOccurrences"); //$NON-NLS-1$ // Button master= addCheckBox(appearanceComposite, label, // PreferenceConstants.EDITOR_MARK_OCCURRENCES, 0); //$NON-NLS-1$ label = PreferencesMessages .getString("JavaEditorPreferencePage.stickyOccurrences"); //$NON-NLS-1$ // fStickyOccurrencesButton= addCheckBox(appearanceComposite, label, // PreferenceConstants.EDITOR_STICKY_OCCURRENCES, 0); //$NON-NLS-1$ // createDependency(master, fStickyOccurrencesButton); Label l = new Label(appearanceComposite, SWT.LEFT); GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd.horizontalSpan = 2; gd.heightHint = convertHeightInCharsToPixels(1) / 2; l.setLayoutData(gd); l = new Label(appearanceComposite, SWT.LEFT); l.setText(PreferencesMessages .getString("JavaEditorPreferencePage.appearanceOptions")); //$NON-NLS-1$ gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd.horizontalSpan = 2; l.setLayoutData(gd); Composite editorComposite = new Composite(appearanceComposite, SWT.NONE); layout = new GridLayout(); layout.numColumns = 2; layout.marginHeight = 0; layout.marginWidth = 0; editorComposite.setLayout(layout); gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_VERTICAL); gd.horizontalSpan = 2; editorComposite.setLayoutData(gd); fAppearanceColorList = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER); gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL); gd.heightHint = convertHeightInCharsToPixels(8); fAppearanceColorList.setLayoutData(gd); Composite stylesComposite = new Composite(editorComposite, SWT.NONE); layout = new GridLayout(); layout.marginHeight = 0; layout.marginWidth = 0; layout.numColumns = 2; stylesComposite.setLayout(layout); stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); l = new Label(stylesComposite, SWT.LEFT); l.setText(PreferencesMessages .getString("JavaEditorPreferencePage.color")); //$NON-NLS-1$ gd = new GridData(); gd.horizontalAlignment = GridData.BEGINNING; l.setLayoutData(gd); fAppearanceColorEditor = new ColorEditor(stylesComposite); Button foregroundColorButton = fAppearanceColorEditor.getButton(); gd = new GridData(GridData.FILL_HORIZONTAL); gd.horizontalAlignment = GridData.BEGINNING; foregroundColorButton.setLayoutData(gd); fAppearanceColorList.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { // do nothing } public void widgetSelected(SelectionEvent e) { handleAppearanceColorListSelection(); } }); foregroundColorButton.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { // do nothing } public void widgetSelected(SelectionEvent e) { int i = fAppearanceColorList.getSelectionIndex(); String key = fAppearanceColorListModel[i][1]; PreferenceConverter.setValue(fOverlayStore, key, fAppearanceColorEditor.getColorValue()); } }); return appearanceComposite; } // private Control createAnnotationsPage(Composite parent) { // Composite composite = new Composite(parent, SWT.NULL); // GridLayout layout = new GridLayout(); // layout.numColumns = 2; // composite.setLayout(layout); // String text = PreferencesMessages // .getString("JavaEditorPreferencePage.analyseAnnotationsWhileTyping"); // //$NON-NLS-1$ // addCheckBox(composite, text, // PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS, 0); // text = PreferencesMessages // .getString("JavaEditorPreferencePage.showQuickFixables"); //$NON-NLS-1$ // addCheckBox(composite, text, // PreferenceConstants.EDITOR_CORRECTION_INDICATION, 0); // addFiller(composite); // Label label = new Label(composite, SWT.LEFT); // label.setText(PreferencesMessages // .getString("JavaEditorPreferencePage.annotationPresentationOptions")); // //$NON-NLS-1$ // GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); // gd.horizontalSpan = 2; // label.setLayoutData(gd); // Composite editorComposite = new Composite(composite, SWT.NONE); // layout = new GridLayout(); // layout.numColumns = 2; // layout.marginHeight = 0; // layout.marginWidth = 0; // editorComposite.setLayout(layout); // gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | // GridData.FILL_VERTICAL); // gd.horizontalSpan = 2; // editorComposite.setLayoutData(gd); // fAnnotationList = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL // | SWT.BORDER); // gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING // | GridData.FILL_HORIZONTAL); // gd.heightHint = convertHeightInCharsToPixels(10); // fAnnotationList.setLayoutData(gd); // Composite optionsComposite = new Composite(editorComposite, SWT.NONE); // layout = new GridLayout(); // layout.marginHeight = 0; // layout.marginWidth = 0; // layout.numColumns = 2; // optionsComposite.setLayout(layout); // optionsComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); // fShowInTextCheckBox = new Button(optionsComposite, SWT.CHECK); // fShowInTextCheckBox.setText(PreferencesMessages // .getString("JavaEditorPreferencePage.annotations.showInText")); // //$NON-NLS-1$ // gd = new GridData(GridData.FILL_HORIZONTAL); // gd.horizontalAlignment = GridData.BEGINNING; // gd.horizontalSpan = 2; // fShowInTextCheckBox.setLayoutData(gd); // fDecorationStyleCombo = new Combo(optionsComposite, SWT.READ_ONLY); // for (int i = 0; i < fAnnotationDecorationListModel.length; i++) // fDecorationStyleCombo.add(fAnnotationDecorationListModel[i][0]); // gd = new GridData(GridData.FILL_HORIZONTAL); // gd.horizontalAlignment = GridData.BEGINNING; // gd.horizontalSpan = 2; // gd.horizontalIndent = 20; // fDecorationStyleCombo.setLayoutData(gd); // fHighlightInTextCheckBox = new Button(optionsComposite, SWT.CHECK); // fHighlightInTextCheckBox.setText(PreferencesMessages // .getString("TextEditorPreferencePage.annotations.highlightInText")); // //$NON-NLS-1$ // gd = new GridData(GridData.FILL_HORIZONTAL); // gd.horizontalAlignment = GridData.BEGINNING; // gd.horizontalSpan = 2; // fHighlightInTextCheckBox.setLayoutData(gd); // fShowInOverviewRulerCheckBox = new Button(optionsComposite, SWT.CHECK); // fShowInOverviewRulerCheckBox.setText(PreferencesMessages // .getString("JavaEditorPreferencePage.annotations.showInOverviewRuler")); // //$NON-NLS-1$ // gd = new GridData(GridData.FILL_HORIZONTAL); // gd.horizontalAlignment = GridData.BEGINNING; // gd.horizontalSpan = 2; // fShowInOverviewRulerCheckBox.setLayoutData(gd); // fShowInVerticalRulerCheckBox = new Button(optionsComposite, SWT.CHECK); // fShowInVerticalRulerCheckBox.setText(PreferencesMessages // .getString("JavaEditorPreferencePage.annotations.showInVerticalRuler")); // //$NON-NLS-1$ // gd = new GridData(GridData.FILL_HORIZONTAL); // gd.horizontalAlignment = GridData.BEGINNING; // gd.horizontalSpan = 2; // fShowInVerticalRulerCheckBox.setLayoutData(gd); // label = new Label(optionsComposite, SWT.LEFT); // label.setText(PreferencesMessages // .getString("JavaEditorPreferencePage.annotations.color")); //$NON-NLS-1$ // gd = new GridData(); // gd.horizontalAlignment = GridData.BEGINNING; // label.setLayoutData(gd); // fAnnotationForegroundColorEditor = new ColorEditor(optionsComposite); // Button foregroundColorButton = // fAnnotationForegroundColorEditor.getButton(); // gd = new GridData(GridData.FILL_HORIZONTAL); // gd.horizontalAlignment = GridData.BEGINNING; // foregroundColorButton.setLayoutData(gd); // fAnnotationList.addSelectionListener(new SelectionListener() { // public void widgetDefaultSelected(SelectionEvent e) { // // do nothing // } // public void widgetSelected(SelectionEvent e) { // handleAnnotationListSelection(); // } // }); // fShowInTextCheckBox.addSelectionListener(new SelectionListener() { // public void widgetDefaultSelected(SelectionEvent e) { // // do nothing // } // public void widgetSelected(SelectionEvent e) { // int i = fAnnotationList.getSelectionIndex(); // String key = fAnnotationColorListModel[i][2]; // fOverlayStore.setValue(key, fShowInTextCheckBox.getSelection()); // String decorationKey = fAnnotationColorListModel[i][6]; // fDecorationStyleCombo.setEnabled(decorationKey != null // && fShowInTextCheckBox.getSelection()); // } // }); // fHighlightInTextCheckBox.addSelectionListener(new SelectionListener() { // public void widgetDefaultSelected(SelectionEvent e) { // // do nothing // } // public void widgetSelected(SelectionEvent e) { // int i = fAnnotationList.getSelectionIndex(); // String key = fAnnotationColorListModel[i][4]; // fOverlayStore.setValue(key, fHighlightInTextCheckBox.getSelection()); // } // }); // fShowInOverviewRulerCheckBox.addSelectionListener(new SelectionListener() // { // public void widgetDefaultSelected(SelectionEvent e) { // // do nothing // } // public void widgetSelected(SelectionEvent e) { // int i = fAnnotationList.getSelectionIndex(); // String key = fAnnotationColorListModel[i][3]; // fOverlayStore // .setValue(key, fShowInOverviewRulerCheckBox.getSelection()); // } // }); // fShowInVerticalRulerCheckBox.addSelectionListener(new SelectionListener() // { // public void widgetDefaultSelected(SelectionEvent e) { // // do nothing // } // public void widgetSelected(SelectionEvent e) { // int i = fAnnotationList.getSelectionIndex(); // String key = fAnnotationColorListModel[i][5]; // fOverlayStore // .setValue(key, fShowInVerticalRulerCheckBox.getSelection()); // } // }); // foregroundColorButton.addSelectionListener(new SelectionListener() { // public void widgetDefaultSelected(SelectionEvent e) { // // do nothing // } // public void widgetSelected(SelectionEvent e) { // int i = fAnnotationList.getSelectionIndex(); // String key = fAnnotationColorListModel[i][1]; // PreferenceConverter.setValue(fOverlayStore, key, // fAnnotationForegroundColorEditor.getColorValue()); // } // }); // fDecorationStyleCombo.addSelectionListener(new SelectionListener() { // /** // * {@inheritdoc} // */ // public void widgetDefaultSelected(SelectionEvent e) { // // do nothing // } // /** // * {@inheritdoc} // */ // public void widgetSelected(SelectionEvent e) { // int i = fAnnotationList.getSelectionIndex(); // String key = fAnnotationColorListModel[i][6]; // if (key != null) { // for (int j = 0; j < fAnnotationDecorationListModel.length; j++) { // if (fAnnotationDecorationListModel[j][0] // .equals(fDecorationStyleCombo.getText())) { // fOverlayStore.setValue(key, fAnnotationDecorationListModel[j][1]); // break; // } // } // } // } // }); // return composite; // } // private String[][] createAnnotationTypeListModel( // MarkerAnnotationPreferences preferences) { // ArrayList listModelItems = new ArrayList(); // SortedSet sortedPreferences = new TreeSet(new Comparator() { // /* // * @see java.util.Comparator#compare(java.lang.Object, // * java.lang.Object) // */ // public int compare(Object o1, Object o2) { // if (!(o2 instanceof AnnotationPreference)) // return -1; // if (!(o1 instanceof AnnotationPreference)) // return 1; // AnnotationPreference a1 = (AnnotationPreference) o1; // AnnotationPreference a2 = (AnnotationPreference) o2; // return Collator.getInstance().compare(a1.getPreferenceLabel(), // a2.getPreferenceLabel()); // } // }); // sortedPreferences.addAll(preferences.getAnnotationPreferences()); // Iterator e = sortedPreferences.iterator(); // while (e.hasNext()) { // AnnotationPreference info = (AnnotationPreference) e.next(); // listModelItems.add(new String[] { info.getPreferenceLabel(), // info.getColorPreferenceKey(), info.getTextPreferenceKey(), // info.getOverviewRulerPreferenceKey(), // info.getHighlightPreferenceKey(), // info.getVerticalRulerPreferenceKey(), // info.getTextStylePreferenceKey() }); // } // String[][] items = new String[listModelItems.size()][]; // listModelItems.toArray(items); // return items; // } private Control createTypingPage(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 1; composite.setLayout(layout); String label; // label = PreferencesMessages // .getString("JavaEditorPreferencePage.overwriteMode"); // //$NON-NLS-1$ // addCheckBox(composite, label, // PreferenceConstants.EDITOR_DISABLE_OVERWRITE_MODE, 1); // addFiller(composite); // // label = PreferencesMessages // .getString("JavaEditorPreferencePage.smartHomeEnd"); // //$NON-NLS-1$ // addCheckBox(composite, label, // PreferenceConstants.EDITOR_SMART_HOME_END, 1); // // label = PreferencesMessages // .getString("JavaEditorPreferencePage.subWordNavigation"); // //$NON-NLS-1$ // addCheckBox(composite, label, // PreferenceConstants.EDITOR_SUB_WORD_NAVIGATION, 1); // addFiller(composite); Group group = new Group(composite, SWT.NONE); layout = new GridLayout(); layout.numColumns = 2; group.setLayout(layout); group.setText(PreferencesMessages .getString("JavaEditorPreferencePage.typing.description")); //$NON-NLS-1$ label = PreferencesMessages .getString("JavaEditorPreferencePage.wrapWords");//$NON-NLS-1$ addCheckBox(group, label, PreferenceConstants.EDITOR_WRAP_WORDS, 1); label = PreferencesMessages .getString("JavaEditorPreferencePage.wrapStringsDQ");//$NON-NLS-1$ Button button = addCheckBox(group, label, PreferenceConstants.EDITOR_WRAP_STRINGS_DQ, 1); label = PreferencesMessages .getString("JavaEditorPreferencePage.escapeStringsDQ");//$NON-NLS-1$ fEscapeStringsButtonDQ = addCheckBox(group, label, PreferenceConstants.EDITOR_ESCAPE_STRINGS_DQ, 1); createDependency(button, fEscapeStringsButtonDQ); label = PreferencesMessages .getString("JavaEditorPreferencePage.wrapStringsSQ");//$NON-NLS-1$ button = addCheckBox(group, label, PreferenceConstants.EDITOR_WRAP_STRINGS_SQ, 1); label = PreferencesMessages .getString("JavaEditorPreferencePage.escapeStringsSQ"); //$NON-NLS-1$ fEscapeStringsButtonSQ = addCheckBox(group, label, PreferenceConstants.EDITOR_ESCAPE_STRINGS_SQ, 1); createDependency(button, fEscapeStringsButtonSQ); label = PreferencesMessages .getString("JavaEditorPreferencePage.smartPaste"); //$NON-NLS-1$ addCheckBox(group, label, PreferenceConstants.EDITOR_SMART_PASTE, 1); label = PreferencesMessages .getString("JavaEditorPreferencePage.insertSpaceForTabs"); //$NON-NLS-1$ addCheckBox(group, label, PreferenceConstants.EDITOR_SPACES_FOR_TABS, 1); label = PreferencesMessages .getString("JavaEditorPreferencePage.closeStringsDQ"); //$NON-NLS-1$ addCheckBox(group, label, PreferenceConstants.EDITOR_CLOSE_STRINGS_DQ_PHP, 1); label = PreferencesMessages .getString("JavaEditorPreferencePage.closeStringsSQ"); //$NON-NLS-1$ addCheckBox(group, label, PreferenceConstants.EDITOR_CLOSE_STRINGS_SQ_PHP, 1); label = PreferencesMessages .getString("JavaEditorPreferencePage.closeBrackets"); //$NON-NLS-1$ addCheckBox(group, label, PreferenceConstants.EDITOR_CLOSE_BRACKETS_PHP, 1); // label = PreferencesMessages // .getString("JavaEditorPreferencePage.closeBraces"); // //$NON-NLS-1$ // addCheckBox(group, label, PreferenceConstants.EDITOR_CLOSE_BRACES, // 1); label = PreferencesMessages .getString("JavaEditorPreferencePage.closeJavaDocs"); //$NON-NLS-1$ button = addCheckBox(group, label, PreferenceConstants.EDITOR_CLOSE_JAVADOCS, 1); label = PreferencesMessages .getString("JavaEditorPreferencePage.formatJavaDocs"); //$NON-NLS-1$ button = addCheckBox(group, label, PreferenceConstants.EDITOR_FORMAT_JAVADOCS, 1); // // label = PreferencesMessages // .getString("JavaEditorPreferencePage.addJavaDocTags"); // //$NON-NLS-1$ // fAddJavaDocTagsButton = addCheckBox(group, label, // PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS, 1); // createDependency(button, fAddJavaDocTagsButton); return composite; } // private void addFiller(Composite composite) { // Label filler = new Label(composite, SWT.LEFT); // GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); // gd.horizontalSpan = 2; // gd.heightHint = convertHeightInCharsToPixels(1) / 2; // filler.setLayoutData(gd); // } private static void indent(Control control) { GridData gridData = new GridData(); gridData.horizontalIndent = 20; control.setLayoutData(gridData); } private static void createDependency(final Button master, final Control slave) { indent(slave); master.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { slave.setEnabled(master.getSelection()); } public void widgetDefaultSelected(SelectionEvent e) { } }); } // private void addCompletionRadioButtons(Composite contentAssistComposite) { // Composite completionComposite = new Composite(contentAssistComposite, // SWT.NONE); // GridData ccgd = new GridData(); // ccgd.horizontalSpan = 2; // completionComposite.setLayoutData(ccgd); // GridLayout ccgl = new GridLayout(); // ccgl.marginWidth = 0; // ccgl.numColumns = 2; // completionComposite.setLayout(ccgl); // // SelectionListener completionSelectionListener= new SelectionAdapter() // // { // // public void widgetSelected(SelectionEvent e) { // // boolean insert= fCompletionInsertsRadioButton.getSelection(); // // fOverlayStore.setValue(PreferenceConstants.CODEASSIST_INSERT_COMPLETION, // // insert); // // } // // }; // // // // fCompletionInsertsRadioButton= new Button(completionComposite, // // SWT.RADIO // // | SWT.LEFT); // // fCompletionInsertsRadioButton.setText(PreferencesMessages.getString("JavaEditorPreferencePage.completionInserts")); // // //$NON-NLS-1$ // // fCompletionInsertsRadioButton.setLayoutData(new GridData()); // // fCompletionInsertsRadioButton.addSelectionListener(completionSelectionListener); // // // // fCompletionOverwritesRadioButton= new Button(completionComposite, // // SWT.RADIO | SWT.LEFT); // // fCompletionOverwritesRadioButton.setText(PreferencesMessages.getString("JavaEditorPreferencePage.completionOverwrites")); // // //$NON-NLS-1$ // // fCompletionOverwritesRadioButton.setLayoutData(new GridData()); // // fCompletionOverwritesRadioButton.addSelectionListener(completionSelectionListener); // } private Control createNavigationPage(Composite parent) { Composite composite = new Composite(parent, SWT.NULL); GridLayout layout = new GridLayout(); layout.numColumns = 2; composite.setLayout(layout); String text = PreferencesMessages .getString("JavaEditorPreferencePage.navigation.browserLikeLinks"); //$NON-NLS-1$ fBrowserLikeLinksCheckBox = addCheckBox(composite, text, PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS, 0); fBrowserLikeLinksCheckBox.addSelectionListener(new SelectionListener() { public void widgetSelected(SelectionEvent e) { boolean state = fBrowserLikeLinksCheckBox.getSelection(); fBrowserLikeLinksKeyModifierText.setEnabled(state); handleBrowserLikeLinksKeyModifierModified(); } public void widgetDefaultSelected(SelectionEvent e) { } }); // Text field for modifier string text = PreferencesMessages .getString("JavaEditorPreferencePage.navigation.browserLikeLinksKeyModifier"); //$NON-NLS-1$ fBrowserLikeLinksKeyModifierText = addTextField(composite, text, PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER, 20, 0, false); fBrowserLikeLinksKeyModifierText.setTextLimit(Text.LIMIT); if (computeStateMask(fOverlayStore .getString(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER)) == -1) { // Fix possible illegal modifier string int stateMask = fOverlayStore .getInt(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK); if (stateMask == -1) fBrowserLikeLinksKeyModifierText.setText(""); //$NON-NLS-1$ else fBrowserLikeLinksKeyModifierText.setText(EditorUtility .getModifierString(stateMask)); } fBrowserLikeLinksKeyModifierText.addKeyListener(new KeyListener() { private boolean isModifierCandidate; public void keyPressed(KeyEvent e) { isModifierCandidate = e.keyCode > 0 && e.character == 0 && e.stateMask == 0; } public void keyReleased(KeyEvent e) { if (isModifierCandidate && e.stateMask > 0 && e.stateMask == e.stateMask && e.character == 0) {// && // e.time // -time // < // 1000) // { String modifierString = fBrowserLikeLinksKeyModifierText .getText(); Point selection = fBrowserLikeLinksKeyModifierText .getSelection(); int i = selection.x - 1; while (i > -1 && Character.isWhitespace(modifierString.charAt(i))) { i--; } boolean needsPrefixDelimiter = i > -1 && !String.valueOf(modifierString.charAt(i)) .equals(DELIMITER); i = selection.y; while (i < modifierString.length() && Character.isWhitespace(modifierString.charAt(i))) { i++; } boolean needsPostfixDelimiter = i < modifierString.length() && !String.valueOf(modifierString.charAt(i)) .equals(DELIMITER); String insertString; if (needsPrefixDelimiter && needsPostfixDelimiter) insertString = PreferencesMessages .getFormattedString( "JavaEditorPreferencePage.navigation.insertDelimiterAndModifierAndDelimiter", new String[] { Action .findModifierString(e.stateMask) }); //$NON-NLS-1$ else if (needsPrefixDelimiter) insertString = PreferencesMessages .getFormattedString( "JavaEditorPreferencePage.navigation.insertDelimiterAndModifier", new String[] { Action .findModifierString(e.stateMask) }); //$NON-NLS-1$ else if (needsPostfixDelimiter) insertString = PreferencesMessages .getFormattedString( "JavaEditorPreferencePage.navigation.insertModifierAndDelimiter", new String[] { Action .findModifierString(e.stateMask) }); //$NON-NLS-1$ else insertString = Action.findModifierString(e.stateMask); fBrowserLikeLinksKeyModifierText.insert(insertString); } } }); fBrowserLikeLinksKeyModifierText .addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { handleBrowserLikeLinksKeyModifierModified(); } }); return composite; } private void handleBrowserLikeLinksKeyModifierModified() { String modifiers = fBrowserLikeLinksKeyModifierText.getText(); int stateMask = computeStateMask(modifiers); if (fBrowserLikeLinksCheckBox.getSelection() && (stateMask == -1 || (stateMask & SWT.SHIFT) != 0)) { if (stateMask == -1) fBrowserLikeLinksKeyModifierStatus = new StatusInfo( IStatus.ERROR, PreferencesMessages .getFormattedString( "JavaEditorPreferencePage.navigation.modifierIsNotValid", modifiers)); //$NON-NLS-1$ else fBrowserLikeLinksKeyModifierStatus = new StatusInfo( IStatus.ERROR, PreferencesMessages .getString("JavaEditorPreferencePage.navigation.shiftIsDisabled")); //$NON-NLS-1$ setValid(false); StatusUtil.applyToStatusLine(this, fBrowserLikeLinksKeyModifierStatus); } else { fBrowserLikeLinksKeyModifierStatus = new StatusInfo(); updateStatus(fBrowserLikeLinksKeyModifierStatus); } } // private IStatus getBrowserLikeLinksKeyModifierStatus() { // if (fBrowserLikeLinksKeyModifierStatus == null) // fBrowserLikeLinksKeyModifierStatus = new StatusInfo(); // return fBrowserLikeLinksKeyModifierStatus; // } /** * Computes the state mask for the given modifier string. * * @param modifiers * the string with the modifiers, separated by '+', '-', ';', ',' * or '.' * @return the state mask or -1 if the input is invalid */ private int computeStateMask(String modifiers) { if (modifiers == null) return -1; if (modifiers.length() == 0) return SWT.NONE; int stateMask = 0; StringTokenizer modifierTokenizer = new StringTokenizer(modifiers, ",;.:+-* "); //$NON-NLS-1$ while (modifierTokenizer.hasMoreTokens()) { int modifier = EditorUtility .findLocalizedModifier(modifierTokenizer.nextToken()); if (modifier == 0 || (stateMask & modifier) == modifier) return -1; stateMask = stateMask | modifier; } return stateMask; } /* * @see PreferencePage#createContents(Composite) */ protected Control createContents(Composite parent) { initializeDefaultColors(); fFoldingConfigurationBlock = new FoldingConfigurationBlock( fOverlayStore); fOverlayStore.load(); fOverlayStore.start(); TabFolder folder = new TabFolder(parent, SWT.NONE); folder.setLayout(new TabFolderLayout()); folder.setLayoutData(new GridData(GridData.FILL_BOTH)); TabItem item = new TabItem(folder, SWT.NONE); item.setText(PreferencesMessages .getString("JavaEditorPreferencePage.general")); //$NON-NLS-1$ item.setControl(createAppearancePage(folder)); item = new TabItem(folder, SWT.NONE); item.setText(PreferencesMessages .getString("JavaEditorPreferencePage.colors")); //$NON-NLS-1$ item.setControl(createSyntaxPage(folder)); // item = new TabItem(folder, SWT.NONE); // item.setText(PreferencesMessages // .getString("JavaEditorPreferencePage.annotationsTab.title")); // //$NON-NLS-1$ // item.setControl(createAnnotationsPage(folder)); item = new TabItem(folder, SWT.NONE); item.setText(PreferencesMessages .getString("JavaEditorPreferencePage.typing.tabTitle")); //$NON-NLS-1$ item.setControl(createTypingPage(folder)); item = new TabItem(folder, SWT.NONE); item.setText(PreferencesMessages .getString("JavaEditorPreferencePage.hoverTab.title")); //$NON-NLS-1$ fJavaEditorHoverConfigurationBlock = new JavaEditorHoverConfigurationBlock( this, fOverlayStore); item.setControl(fJavaEditorHoverConfigurationBlock .createControl(folder)); item = new TabItem(folder, SWT.NONE); item.setText(PreferencesMessages .getString("JavaEditorPreferencePage.navigationTab.title")); // //$NON-NLS-1$ item.setControl(createNavigationPage(folder)); item = new TabItem(folder, SWT.NONE); item.setText(PreferencesMessages .getString("JavaEditorPreferencePage.folding.title")); //$NON-NLS-1$ item.setControl(fFoldingConfigurationBlock.createControl(folder)); initialize(); Dialog.applyDialogFont(folder); return folder; } private void initialize() { initializeFields(); for (int i = 0; i < fSyntaxColorListModel.length; i++) fSyntaxColorList.add(fSyntaxColorListModel[i][0]); fSyntaxColorList.getDisplay().asyncExec(new Runnable() { public void run() { if (fSyntaxColorList != null && !fSyntaxColorList.isDisposed()) { fSyntaxColorList.select(0); handleSyntaxColorListSelection(); } } }); for (int i = 0; i < fAppearanceColorListModel.length; i++) fAppearanceColorList.add(fAppearanceColorListModel[i][0]); fAppearanceColorList.getDisplay().asyncExec(new Runnable() { public void run() { if (fAppearanceColorList != null && !fAppearanceColorList.isDisposed()) { fAppearanceColorList.select(0); handleAppearanceColorListSelection(); } } }); // for (int i = 0; i < fAnnotationColorListModel.length; i++) // fAnnotationList.add(fAnnotationColorListModel[i][0]); // fAnnotationList.getDisplay().asyncExec(new Runnable() { // public void run() { // if (fAnnotationList != null && !fAnnotationList.isDisposed()) { // fAnnotationList.select(0); // handleAnnotationListSelection(); // } // } // }); // for (int i= 0; i < fContentAssistColorListModel.length; i++) // fContentAssistColorList.add(fContentAssistColorListModel[i][0]); // fContentAssistColorList.getDisplay().asyncExec(new Runnable() { // public void run() { // if (fContentAssistColorList != null && // !fContentAssistColorList.isDisposed()) { // fContentAssistColorList.select(0); // handleContentAssistColorListSelection(); // } // } // }); fFoldingConfigurationBlock.initialize(); } private void initializeFields() { Iterator e = fColorButtons.keySet().iterator(); while (e.hasNext()) { ColorEditor c = (ColorEditor) e.next(); String key = (String) fColorButtons.get(c); RGB rgb = PreferenceConverter.getColor(fOverlayStore, key); c.setColorValue(rgb); } e = fCheckBoxes.keySet().iterator(); while (e.hasNext()) { Button b = (Button) e.next(); String key = (String) fCheckBoxes.get(b); b.setSelection(fOverlayStore.getBoolean(key)); } e = fTextFields.keySet().iterator(); while (e.hasNext()) { Text t = (Text) e.next(); String key = (String) fTextFields.get(t); t.setText(fOverlayStore.getString(key)); } RGB rgb = PreferenceConverter.getColor(fOverlayStore, PreferenceConstants.EDITOR_BACKGROUND_COLOR); fBackgroundColorEditor.setColorValue(rgb); boolean default_ = fOverlayStore .getBoolean(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR); fBackgroundDefaultRadioButton.setSelection(default_); fBackgroundCustomRadioButton.setSelection(!default_); fBackgroundColorButton.setEnabled(!default_); // boolean closeJavaDocs = fOverlayStore // .getBoolean(PreferenceConstants.EDITOR_CLOSE_JAVADOCS); // fAddJavaDocTagsButton.setEnabled(closeJavaDocs); fEscapeStringsButtonDQ.setEnabled(fOverlayStore .getBoolean(PreferenceConstants.EDITOR_WRAP_STRINGS_DQ)); fEscapeStringsButtonSQ.setEnabled(fOverlayStore .getBoolean(PreferenceConstants.EDITOR_WRAP_STRINGS_SQ)); // boolean fillMethodArguments= // fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES); // fGuessMethodArgumentsButton.setEnabled(fillMethodArguments); // boolean completionInserts= // fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_INSERT_COMPLETION); // fCompletionInsertsRadioButton.setSelection(completionInserts); // fCompletionOverwritesRadioButton.setSelection(! completionInserts); // fBrowserLikeLinksKeyModifierText.setEnabled(fBrowserLikeLinksCheckBox .getSelection()); // boolean markOccurrences= // fOverlayStore.getBoolean(PreferenceConstants.EDITOR_MARK_OCCURRENCES); // fStickyOccurrencesButton.setEnabled(markOccurrences); updateAutoactivationControls(); } private void initializeDefaultColors() { if (!getPreferenceStore().contains( PreferenceConstants.EDITOR_BACKGROUND_COLOR)) { RGB rgb = getControl().getDisplay().getSystemColor( SWT.COLOR_LIST_BACKGROUND).getRGB(); PreferenceConverter.setDefault(fOverlayStore, PreferenceConstants.EDITOR_BACKGROUND_COLOR, rgb); PreferenceConverter.setDefault(getPreferenceStore(), PreferenceConstants.EDITOR_BACKGROUND_COLOR, rgb); } if (!getPreferenceStore().contains( PreferenceConstants.EDITOR_FOREGROUND_COLOR)) { RGB rgb = getControl().getDisplay().getSystemColor( SWT.COLOR_LIST_FOREGROUND).getRGB(); PreferenceConverter.setDefault(fOverlayStore, PreferenceConstants.EDITOR_FOREGROUND_COLOR, rgb); PreferenceConverter.setDefault(getPreferenceStore(), PreferenceConstants.EDITOR_FOREGROUND_COLOR, rgb); } } private void updateAutoactivationControls() { // boolean autoactivation= // fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_AUTOACTIVATION); // fAutoInsertDelayText.setEnabled(autoactivation); // fAutoInsertDelayLabel.setEnabled(autoactivation); // fAutoInsertJavaTriggerText.setEnabled(autoactivation); // fAutoInsertJavaTriggerLabel.setEnabled(autoactivation); // // fAutoInsertJavaDocTriggerText.setEnabled(autoactivation); // fAutoInsertJavaDocTriggerLabel.setEnabled(autoactivation); } /* * @see PreferencePage#performOk() */ public boolean performOk() { // fJavaEditorHoverConfigurationBlock.performOk(); fFoldingConfigurationBlock.performOk(); fOverlayStore .setValue( PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK, computeStateMask(fBrowserLikeLinksKeyModifierText .getText())); fOverlayStore.propagate(); PHPeclipsePlugin.getDefault().savePluginPreferences(); return true; } /* * @see PreferencePage#performDefaults() */ protected void performDefaults() { fOverlayStore.loadDefaults(); initializeFields(); handleSyntaxColorListSelection(); handleAppearanceColorListSelection(); // handleAnnotationListSelection(); // handleContentAssistColorListSelection(); // fJavaEditorHoverConfigurationBlock.performDefaults(); fFoldingConfigurationBlock.performDefaults(); super.performDefaults(); fPreviewViewer.invalidateTextPresentation(); } /* * @see DialogPage#dispose() */ public void dispose() { fFoldingConfigurationBlock.dispose(); if (fJavaTextTools != null) { fJavaTextTools.dispose(); fJavaTextTools = null; } if (fOverlayStore != null) { fOverlayStore.stop(); fOverlayStore = null; } if (fBackgroundColor != null && !fBackgroundColor.isDisposed()) fBackgroundColor.dispose(); super.dispose(); } private Button addCheckBox(Composite parent, String label, String key, int indentation) { Button checkBox = new Button(parent, SWT.CHECK); checkBox.setText(label); GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gd.horizontalIndent = indentation; gd.horizontalSpan = 2; checkBox.setLayoutData(gd); checkBox.addSelectionListener(fCheckBoxListener); fCheckBoxes.put(checkBox, key); return checkBox; } private Text addTextField(Composite composite, String label, String key, int textLimit, int indentation, boolean isNumber) { return getTextControl(addLabelledTextField(composite, label, key, textLimit, indentation, isNumber)); } // private static Label getLabelControl(Control[] labelledTextField) { // return (Label) labelledTextField[0]; // } private static Text getTextControl(Control[] labelledTextField) { return (Text) labelledTextField[1]; } /** * Returns an array of size 2: - first element is of type Label- * second element is of type Text Use * getLabelControl and getTextControl to get * the 2 controls. */ private Control[] addLabelledTextField(Composite composite, String label, String key, int textLimit, int indentation, boolean isNumber) { Label labelControl = new Label(composite, SWT.NONE); labelControl.setText(label); GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gd.horizontalIndent = indentation; labelControl.setLayoutData(gd); Text textControl = new Text(composite, SWT.BORDER | SWT.SINGLE); gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gd.widthHint = convertWidthInCharsToPixels(textLimit + 1); textControl.setLayoutData(gd); textControl.setTextLimit(textLimit); fTextFields.put(textControl, key); if (isNumber) { fNumberFields.add(textControl); textControl.setText("0"); textControl.addModifyListener(fNumberFieldListener); } else { textControl.addModifyListener(fTextFieldListener); } return new Control[] { labelControl, textControl }; } private String loadPreviewContentFromFile(String filename) { String line; String separator = System.getProperty("line.separator"); //$NON-NLS-1$ StringBuffer buffer = new StringBuffer(512); BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(getClass() .getResourceAsStream(filename))); while ((line = reader.readLine()) != null) { buffer.append(line); buffer.append(separator); } } catch (IOException io) { PHPeclipsePlugin.log(io); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { } } } return buffer.toString(); } private void numberFieldChanged(Text textControl) { String number = textControl.getText(); IStatus status = validatePositiveNumber(number); if (!status.matches(IStatus.ERROR)) fOverlayStore.setValue((String) fTextFields.get(textControl), number); updateStatus(status); } private IStatus validatePositiveNumber(String number) { StatusInfo status = new StatusInfo(); if (number.length() == 0) { status.setError(PreferencesMessages .getString("JavaEditorPreferencePage.empty_input")); //$NON-NLS-1$ } else { try { int value = Integer.parseInt(number); if (value < 0) status.setError(PreferencesMessages.getFormattedString( "JavaEditorPreferencePage.invalid_input", number)); //$NON-NLS-1$ } catch (NumberFormatException e) { status.setError(PreferencesMessages.getFormattedString( "JavaEditorPreferencePage.invalid_input", number)); //$NON-NLS-1$ } } return status; } void updateStatus(IStatus status) { if (!status.matches(IStatus.ERROR)) { for (int i = 0; i < fNumberFields.size(); i++) { Text text = (Text) fNumberFields.get(i); IStatus s = validatePositiveNumber(text.getText()); status = StatusUtil.getMoreSevere(s, status); } } // status= // StatusUtil.getMoreSevere(fJavaEditorHoverConfigurationBlock.getStatus(), // status); // status= // StatusUtil.getMoreSevere(getBrowserLikeLinksKeyModifierStatus(), // status); setValid(!status.matches(IStatus.ERROR)); StatusUtil.applyToStatusLine(this, status); } }