1 /*******************************************************************************
2 * Copyright (c) 2000, 2003 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Common Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/cpl-v10.html
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11 package net.sourceforge.phpdt.internal.ui.preferences;
13 import java.io.BufferedReader;
14 import java.io.IOException;
15 import java.io.InputStreamReader;
16 //import java.text.Collator;
17 import java.util.ArrayList;
18 //import java.util.Comparator;
19 import java.util.HashMap;
20 import java.util.Iterator;
22 //import java.util.SortedSet;
23 import java.util.StringTokenizer;
24 //import java.util.TreeSet;
26 import net.sourceforge.phpdt.core.JavaCore;
27 import net.sourceforge.phpdt.internal.ui.IJavaHelpContextIds;
28 import net.sourceforge.phpdt.internal.ui.dialogs.StatusInfo;
29 import net.sourceforge.phpdt.internal.ui.dialogs.StatusUtil;
30 import net.sourceforge.phpdt.internal.ui.text.IPHPPartitions;
31 import net.sourceforge.phpdt.internal.ui.text.PreferencesAdapter;
32 import net.sourceforge.phpdt.internal.ui.util.TabFolderLayout;
33 import net.sourceforge.phpdt.ui.PreferenceConstants;
34 import net.sourceforge.phpdt.ui.text.JavaTextTools;
35 import net.sourceforge.phpdt.ui.text.PHPSourceViewerConfiguration;
36 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
37 import net.sourceforge.phpeclipse.phpeditor.EditorUtility;
38 import net.sourceforge.phpeclipse.phpeditor.JavaSourceViewer;
39 import net.sourceforge.phpeclipse.preferences.ColorEditor;
41 import org.eclipse.core.runtime.IStatus;
42 import org.eclipse.core.runtime.Preferences;
43 import org.eclipse.jface.action.Action;
44 import org.eclipse.jface.dialogs.Dialog;
45 import org.eclipse.jface.preference.IPreferenceStore;
46 import org.eclipse.jface.preference.PreferenceConverter;
47 import org.eclipse.jface.preference.PreferencePage;
48 import org.eclipse.jface.resource.JFaceResources;
49 import org.eclipse.jface.text.Document;
50 import org.eclipse.jface.text.IDocument;
51 import org.eclipse.jface.text.source.SourceViewer;
52 import org.eclipse.swt.SWT;
53 import org.eclipse.swt.events.KeyEvent;
54 import org.eclipse.swt.events.KeyListener;
55 import org.eclipse.swt.events.ModifyEvent;
56 import org.eclipse.swt.events.ModifyListener;
57 import org.eclipse.swt.events.SelectionEvent;
58 import org.eclipse.swt.events.SelectionListener;
59 import org.eclipse.swt.graphics.Color;
60 import org.eclipse.swt.graphics.Font;
61 import org.eclipse.swt.graphics.Point;
62 import org.eclipse.swt.graphics.RGB;
63 import org.eclipse.swt.layout.GridData;
64 import org.eclipse.swt.layout.GridLayout;
65 import org.eclipse.swt.layout.RowLayout;
66 import org.eclipse.swt.widgets.Button;
67 //import org.eclipse.swt.widgets.Combo;
68 import org.eclipse.swt.widgets.Composite;
69 import org.eclipse.swt.widgets.Control;
70 import org.eclipse.swt.widgets.Event;
71 import org.eclipse.swt.widgets.Group;
72 import org.eclipse.swt.widgets.Label;
73 import org.eclipse.swt.widgets.Link;
74 import org.eclipse.swt.widgets.List;
75 import org.eclipse.swt.widgets.Listener;
76 import org.eclipse.swt.widgets.TabFolder;
77 import org.eclipse.swt.widgets.TabItem;
78 import org.eclipse.swt.widgets.Text;
79 import org.eclipse.ui.IWorkbench;
80 import org.eclipse.ui.IWorkbenchPreferencePage;
81 import org.eclipse.ui.PlatformUI;
82 import org.eclipse.ui.dialogs.PreferencesUtil;
83 import org.eclipse.ui.editors.text.EditorsUI;
84 import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
85 import org.eclipse.ui.texteditor.AnnotationPreference;
86 import org.eclipse.ui.texteditor.ChainedPreferenceStore;
87 import org.eclipse.ui.texteditor.MarkerAnnotationPreferences;
91 * The page for setting the editor options.
93 public class JavaEditorPreferencePage extends PreferencePage implements
94 IWorkbenchPreferencePage {
95 private static final String BOLD = PreferenceConstants.EDITOR_BOLD_SUFFIX;
96 private static final String ITALIC = PreferenceConstants.EDITOR_ITALIC_SUFFIX;
97 private static final String UNDERLINE = PreferenceConstants.EDITOR_UNDERLINE_SUFFIX;
98 private static final String STRIKETHROUGH = PreferenceConstants.EDITOR_STRIKETHROUGH_SUFFIX;
100 private static final String COMPILER_TASK_TAGS = JavaCore.COMPILER_TASK_TAGS;
102 private static final String DELIMITER = PreferencesMessages
103 .getString("JavaEditorPreferencePage.navigation.delimiter"); //$NON-NLS-1$
105 /** The keys of the overlay store. */
106 public final OverlayPreferenceStore.OverlayKey[] fKeys;
108 private final String[][] fSyntaxColorListModel = new String[][] {
110 PreferencesMessages.getString("JavaEditorPreferencePage.multiLineComment"),
111 PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR },
114 PreferencesMessages.getString("JavaEditorPreferencePage.singleLineComment"),
115 PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR },
118 PreferencesMessages.getString("JavaEditorPreferencePage.tags"),
119 PreferenceConstants.EDITOR_PHP_TAG_COLOR },
122 PreferencesMessages.getString("JavaEditorPreferencePage.keywords"),
123 PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR },
125 PreferencesMessages.getString("JavaEditorPreferencePage.functionNames"),
126 PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR },
129 PreferencesMessages.getString("JavaEditorPreferencePage.variables"),
130 PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR },
133 PreferencesMessages.getString("JavaEditorPreferencePage.variables_dollar"),
134 PreferenceConstants.EDITOR_PHP_VARIABLE_DOLLAR_COLOR },
137 PreferencesMessages.getString("JavaEditorPreferencePage.constants"),
138 PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR },
141 PreferencesMessages.getString("JavaEditorPreferencePage.types"),
142 PreferenceConstants.EDITOR_PHP_TYPE_COLOR },
145 PreferencesMessages.getString("JavaEditorPreferencePage.strings_dq"),
146 PreferenceConstants.EDITOR_STRING_COLOR_DQ },
148 PreferencesMessages.getString("JavaEditorPreferencePage.strings_sq"),
149 PreferenceConstants.EDITOR_STRING_COLOR_SQ },
152 PreferencesMessages.getString("JavaEditorPreferencePage.others"),
153 PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR }, //$NON-NLS-1$
155 PreferencesMessages.getString("JavaEditorPreferencePage.operators"),
156 PreferenceConstants.EDITOR_PHP_OPERATOR_COLOR },
159 PreferencesMessages.getString("JavaEditorPreferencePage.returnKeyword"),
160 PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_COLOR },
162 PreferencesMessages.getString("JavaEditorPreferencePage.braces"),
163 PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_COLOR },
166 PreferencesMessages.getString("JavaEditorPreferencePage.phpDocKeywords"),
167 PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR },
170 PreferencesMessages.getString("JavaEditorPreferencePage.phpDocHtmlTags"),
171 PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR },
174 PreferencesMessages.getString("JavaEditorPreferencePage.phpDocLinks"),
175 PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR },
178 PreferencesMessages.getString("JavaEditorPreferencePage.phpDocOthers"), PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR } //$NON-NLS-1$
181 private final String[][] fAppearanceColorListModel = new String[][] {
183 PreferencesMessages.getString("JavaEditorPreferencePage.matchingBracketsHighlightColor2"),
184 PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR },
187 PreferencesMessages.getString("JavaEditorPreferencePage.currentLineHighlighColor"),
188 AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR },
191 PreferencesMessages.getString("JavaEditorPreferencePage.printMarginColor2"),
192 AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR },
195 PreferencesMessages.getString("JavaEditorPreferencePage.findScopeColor2"),
196 PreferenceConstants.EDITOR_FIND_SCOPE_COLOR },
199 PreferencesMessages.getString("JavaEditorPreferencePage.linkColor2"), PreferenceConstants.EDITOR_LINK_COLOR }, //$NON-NLS-1$
202 // private final String[][] fAnnotationColorListModel;
204 // private final String[][] fAnnotationDecorationListModel = new String[][]{
206 // PreferencesMessages
207 // .getString("JavaEditorPreferencePage.AnnotationDecoration.NONE"),
208 // AnnotationPreference.STYLE_NONE},
211 // PreferencesMessages
212 // .getString("JavaEditorPreferencePage.AnnotationDecoration.SQUIGGLIES"),
213 // AnnotationPreference.STYLE_SQUIGGLIES},
216 // PreferencesMessages
217 // .getString("JavaEditorPreferencePage.AnnotationDecoration.UNDERLINE"),
218 // AnnotationPreference.STYLE_UNDERLINE},
221 // PreferencesMessages
222 // .getString("JavaEditorPreferencePage.AnnotationDecoration.BOX"),
223 // AnnotationPreference.STYLE_BOX},
226 // PreferencesMessages
227 // .getString("JavaEditorPreferencePage.AnnotationDecoration.IBEAM"),
228 // AnnotationPreference.STYLE_IBEAM} //$NON-NLS-1$
230 private OverlayPreferenceStore fOverlayStore;
232 private JavaTextTools fJavaTextTools;
234 private JavaEditorHoverConfigurationBlock fJavaEditorHoverConfigurationBlock;
236 private FoldingConfigurationBlock fFoldingConfigurationBlock;
238 private Map fColorButtons = new HashMap();
240 private Map fCheckBoxes = new HashMap();
242 private SelectionListener fCheckBoxListener = new SelectionListener() {
243 public void widgetDefaultSelected(SelectionEvent e) {
246 public void widgetSelected(SelectionEvent e) {
247 Button button = (Button) e.widget;
248 fOverlayStore.setValue((String) fCheckBoxes.get(button), button
253 private Map fTextFields = new HashMap();
255 private ModifyListener fTextFieldListener = new ModifyListener() {
256 public void modifyText(ModifyEvent e) {
257 Text text = (Text) e.widget;
258 fOverlayStore.setValue((String) fTextFields.get(text), text
263 private ArrayList fNumberFields = new ArrayList();
265 private ModifyListener fNumberFieldListener = new ModifyListener() {
266 public void modifyText(ModifyEvent e) {
267 numberFieldChanged((Text) e.widget);
271 private List fSyntaxColorList;
273 private List fAppearanceColorList;
275 // private List fContentAssistColorList;
276 //private List fAnnotationList;
278 private ColorEditor fSyntaxForegroundColorEditor;
280 private ColorEditor fAppearanceColorEditor;
282 //private ColorEditor fAnnotationForegroundColorEditor;
284 //private ColorEditor fContentAssistColorEditor;
286 private ColorEditor fBackgroundColorEditor;
288 private Button fBackgroundDefaultRadioButton;
290 private Button fBackgroundCustomRadioButton;
292 private Button fBackgroundColorButton;
294 private Button fBoldCheckBox;
295 private Button fItalicCheckBox;
296 private Button fUnderlineCheckBox;
297 private Button fStrikeThroughCheckBox;
299 // private Button fAddJavaDocTagsButton;
301 private Button fEscapeStringsButtonDQ;
303 private Button fEscapeStringsButtonSQ;
305 // private Button fGuessMethodArgumentsButton;
306 private SourceViewer fPreviewViewer;
308 private Color fBackgroundColor;
310 //private Control fAutoInsertDelayText;
312 //private Control fAutoInsertJavaTriggerText;
314 //private Control fAutoInsertJavaDocTriggerText;
316 //private Label fAutoInsertDelayLabel;
318 //private Label fAutoInsertJavaTriggerLabel;
320 //private Label fAutoInsertJavaDocTriggerLabel;
324 //private Combo fDecorationStyleCombo;
326 //private Button fHighlightInTextCheckBox;
328 //private Button fShowInOverviewRulerCheckBox;
330 //private Button fShowInVerticalRulerCheckBox;
332 private Text fBrowserLikeLinksKeyModifierText;
334 private Button fBrowserLikeLinksCheckBox;
336 private StatusInfo fBrowserLikeLinksKeyModifierStatus;
338 // private Button fCompletionInsertsRadioButton;
339 // private Button fCompletionOverwritesRadioButton;
340 // private Button fStickyOccurrencesButton;
342 * Creates a new preference page.
344 public JavaEditorPreferencePage() {
345 setDescription(PreferencesMessages.getString("JavaEditorPreferencePage.description")); //$NON-NLS-1$
346 setPreferenceStore(PHPeclipsePlugin.getDefault().getPreferenceStore());
347 MarkerAnnotationPreferences markerAnnotationPreferences = new MarkerAnnotationPreferences();
348 fKeys = createOverlayStoreKeys(markerAnnotationPreferences);
349 fOverlayStore = new OverlayPreferenceStore(getPreferenceStore(), fKeys);
350 // fAnnotationColorListModel =
351 // createAnnotationTypeListModel(markerAnnotationPreferences);
354 private OverlayPreferenceStore.OverlayKey[] createOverlayStoreKeys(
355 MarkerAnnotationPreferences preferences) {
356 ArrayList overlayKeys = new ArrayList();
357 Iterator e = preferences.getAnnotationPreferences().iterator();
358 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_FOREGROUND_COLOR));
359 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_FOREGROUND_DEFAULT_COLOR));
360 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_BACKGROUND_COLOR));
361 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR));
362 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,PreferenceConstants.EDITOR_TAB_WIDTH));
364 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR));
365 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_BOLD));
366 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_ITALIC));
367 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_UNDERLINE));
368 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_STRIKETHROUGH));
370 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR));
371 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD));
372 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_ITALIC));
373 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_UNDERLINE));
374 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_STRIKETHROUGH));
376 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR));
377 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD));
378 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_KEYWORD_ITALIC));
379 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_KEYWORD_UNDERLINE));
380 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_KEYWORD_STRIKETHROUGH));
382 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_TAG_COLOR));
383 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TAG_BOLD));
384 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TAG_ITALIC));
385 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TAG_UNDERLINE));
386 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TAG_STRIKETHROUGH));
388 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR));
389 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_BOLD));
390 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_ITALIC));
391 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_UNDERLINE));
392 overlayKeys.add (new OverlayPreferenceStore.OverlayKey (OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_STRIKETHROUGH));
394 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR));
395 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_BOLD));
396 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_ITALIC));
397 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_UNDERLINE));
398 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_STRIKETHROUGH));
400 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_VARIABLE_DOLLAR_COLOR));
401 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_DOLLAR_BOLD));
402 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_DOLLAR_ITALIC));
403 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_DOLLAR_UNDERLINE));
404 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_VARIABLE_DOLLAR_STRIKETHROUGH));
406 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR));
407 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_CONSTANT_BOLD));
408 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_CONSTANT_ITALIC));
409 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_CONSTANT_UNDERLINE));
410 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_CONSTANT_STRIKETHROUGH));
412 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_TYPE_COLOR));
413 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TYPE_BOLD));
414 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TYPE_ITALIC));
415 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TYPE_UNDERLINE));
416 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_TYPE_STRIKETHROUGH));
418 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_STRING_COLOR_DQ));
419 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_BOLD_DQ));
420 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_ITALIC_DQ));
421 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_UNDERLINE_DQ));
422 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_STRIKETHROUGH_DQ));
424 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_STRING_COLOR_SQ));
425 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_BOLD_SQ));
426 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_ITALIC_SQ));
427 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_UNDERLINE_SQ));
428 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_STRING_STRIKETHROUGH_SQ));
430 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR));
431 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD));
432 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_DEFAULT_ITALIC));
433 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_DEFAULT_UNDERLINE));
434 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVA_DEFAULT_STRIKETHROUGH));
436 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_TASK_TAG_COLOR));
437 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_TASK_TAG_BOLD));
438 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_TASK_TAG_ITALIC));
439 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_TASK_TAG_UNDERLINE));
440 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_TASK_TAG_STRIKETHROUGH));
441 // overlayKeys.add(new
442 // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING_DQ,
443 // PreferenceConstants.EDITOR_JAVA_METHOD_NAME_COLOR));
444 // overlayKeys.add(new
445 // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
446 // PreferenceConstants.EDITOR_JAVA_METHOD_NAME_BOLD));
447 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_OPERATOR_COLOR));
448 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_OPERATOR_BOLD));
449 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_OPERATOR_ITALIC));
450 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_OPERATOR_UNDERLINE));
451 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_OPERATOR_STRIKETHROUGH));
453 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_COLOR));
454 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_BOLD));
455 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_ITALIC));
456 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_UNDERLINE));
457 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_STRIKETHROUGH));
459 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_COLOR));
460 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_BOLD));
461 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_ITALIC));
462 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_UNDERLINE));
463 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_PHP_BRACE_OPERATOR_STRIKETHROUGH));
465 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR));
466 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_KEYWORD_BOLD));
467 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_KEYWORD_ITALIC));
468 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_KEYWORD_UNDERLINE));
469 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_KEYWORD_STRIKETHROUGH));
471 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR));
472 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD));
473 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_TAG_ITALIC));
474 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_TAG_UNDERLINE));
475 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_TAG_STRIKETHROUGH));
477 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR));
478 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_LINKS_BOLD));
479 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_LINKS_ITALIC));
480 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_LINKS_UNDERLINE));
481 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_LINKS_STRIKETHROUGH));
483 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR));
484 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD));
485 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_DEFAULT_ITALIC));
486 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_DEFAULT_UNDERLINE));
487 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_JAVADOC_DEFAULT_STRIKETHROUGH));
489 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR));
490 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_MATCHING_BRACKETS));
491 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR));
492 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE));
493 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR));
494 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN));
495 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN));
496 // overlayKeys.add(new
497 // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
498 // PreferenceConstants.EDITOR_MARK_OCCURRENCES));
499 // overlayKeys.add(new
500 // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
501 // PreferenceConstants.EDITOR_STICKY_OCCURRENCES));
502 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_FIND_SCOPE_COLOR));
503 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_LINK_COLOR));
504 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_CORRECTION_INDICATION));
505 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS));
506 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,AbstractDecoratedTextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER));
507 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SPACES_FOR_TABS));
508 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_AUTOACTIVATION));
509 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY));
510 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_AUTOINSERT));
511 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND));
512 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND));
513 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND));
514 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND));
515 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND));
516 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND));
517 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA));
518 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC));
519 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS));
520 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_ORDER_PROPOSALS));
521 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_CASE_SENSITIVITY));
522 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_ADDIMPORT));
523 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_INSERT_COMPLETION));
524 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES));
525 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS));
526 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SMART_PASTE));
527 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_CLOSE_STRINGS_DQ_PHP));
528 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_CLOSE_STRINGS_SQ_PHP));
529 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_CLOSE_BRACKETS_PHP));
531 // .add(new OverlayPreferenceStore.OverlayKey(
532 // OverlayPreferenceStore.BOOLEAN,
533 // PreferenceConstants.EDITOR_CLOSE_BRACES));
534 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_CLOSE_JAVADOCS));
535 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_WRAP_WORDS));
536 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_WRAP_STRINGS_DQ));
537 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_ESCAPE_STRINGS_DQ));
538 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_WRAP_STRINGS_SQ));
539 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_ESCAPE_STRINGS_SQ));
541 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS));
542 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_FORMAT_JAVADOCS));
544 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SMART_HOME_END));
545 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_SUB_WORD_NAVIGATION));
546 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_DISABLE_OVERWRITE_MODE));
547 // overlayKeys.add(new
548 // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
549 // PreferenceConstants.EDITOR_SHOW_TEXT_HOVER_AFFORDANCE));
550 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIERS));
551 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_TEXT_HOVER_MODIFIER_MASKS));
552 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS));
553 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER));
554 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK));
556 while (e.hasNext()) {
557 AnnotationPreference info = (AnnotationPreference) e.next();
558 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, info.getColorPreferenceKey()));
559 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, info.getTextPreferenceKey()));
561 if (info.getHighlightPreferenceKey() != null)
562 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, info.getHighlightPreferenceKey()));
564 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, info.getOverviewRulerPreferenceKey()));
566 if (info.getVerticalRulerPreferenceKey() != null)
567 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, info.getVerticalRulerPreferenceKey()));
569 if (info.getTextStylePreferenceKey() != null)
570 overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, info.getTextStylePreferenceKey()));
573 OverlayPreferenceStore.OverlayKey[] keys = new OverlayPreferenceStore.OverlayKey[overlayKeys.size()];
574 overlayKeys.toArray(keys);
578 * @see IWorkbenchPreferencePage#init()
581 public void init(IWorkbench workbench) {
585 * @see PreferencePage#createControl(Composite)
587 public void createControl(Composite parent) {
588 super.createControl(parent);
589 PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(),
590 IJavaHelpContextIds.JAVA_EDITOR_PREFERENCE_PAGE);
593 private void handleSyntaxColorListSelection () {
594 int i = fSyntaxColorList.getSelectionIndex ();
595 String key = fSyntaxColorListModel[i][1];
596 RGB rgb = PreferenceConverter.getColor (fOverlayStore, key);
597 fSyntaxForegroundColorEditor.setColorValue (rgb);
598 fBoldCheckBox.setSelection (fOverlayStore.getBoolean (key + BOLD));
599 fItalicCheckBox.setSelection (fOverlayStore.getBoolean (key + ITALIC));
600 fUnderlineCheckBox.setSelection (fOverlayStore.getBoolean (key + UNDERLINE));
601 fStrikeThroughCheckBox.setSelection (fOverlayStore.getBoolean (key + STRIKETHROUGH));
604 private void handleAppearanceColorListSelection() {
605 int i = fAppearanceColorList.getSelectionIndex();
606 String key = fAppearanceColorListModel[i][1];
607 RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
608 fAppearanceColorEditor.setColorValue(rgb);
611 // private void handleAnnotationListSelection() {
612 // int i = fAnnotationList.getSelectionIndex();
613 // String key = fAnnotationColorListModel[i][1];
614 // RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
615 // fAnnotationForegroundColorEditor.setColorValue(rgb);
616 // key = fAnnotationColorListModel[i][2];
617 // boolean showInText = fOverlayStore.getBoolean(key);
618 // fShowInTextCheckBox.setSelection(showInText);
619 // key = fAnnotationColorListModel[i][6];
620 // if (key != null) {
621 // fDecorationStyleCombo.setEnabled(showInText);
622 // for (int j = 0; j < fAnnotationDecorationListModel.length; j++) {
623 // String value = fOverlayStore.getString(key);
624 // if (fAnnotationDecorationListModel[j][1].equals(value)) {
625 // fDecorationStyleCombo.setText(fAnnotationDecorationListModel[j][0]);
630 // fDecorationStyleCombo.setEnabled(false);
631 // fDecorationStyleCombo.setText(fAnnotationDecorationListModel[1][0]); //
645 // key = fAnnotationColorListModel[i][3];
646 // fShowInOverviewRulerCheckBox.setSelection(fOverlayStore.getBoolean(key));
647 // key = fAnnotationColorListModel[i][4];
648 // if (key != null) {
649 // fHighlightInTextCheckBox.setSelection(fOverlayStore.getBoolean(key));
650 // fHighlightInTextCheckBox.setEnabled(true);
652 // fHighlightInTextCheckBox.setEnabled(false);
653 // key = fAnnotationColorListModel[i][5];
654 // if (key != null) {
655 // fShowInVerticalRulerCheckBox.setSelection(fOverlayStore.getBoolean(key));
656 // fShowInVerticalRulerCheckBox.setEnabled(true);
658 // fShowInVerticalRulerCheckBox.setSelection(true);
659 // fShowInVerticalRulerCheckBox.setEnabled(false);
662 private Control createSyntaxPage(Composite parent) {
663 Composite colorComposite = new Composite(parent, SWT.NULL);
664 colorComposite.setLayout (new GridLayout());
665 Group backgroundComposite = new Group (colorComposite, SWT.SHADOW_ETCHED_IN);
666 backgroundComposite.setLayout(new RowLayout());
667 backgroundComposite.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.backgroundColor"));//$NON-NLS-1$
669 SelectionListener backgroundSelectionListener = new SelectionListener() {
670 public void widgetSelected (SelectionEvent e) {
671 boolean custom = fBackgroundCustomRadioButton.getSelection ();
672 fBackgroundColorButton.setEnabled (custom);
673 fOverlayStore.setValue (PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR, !custom);
676 public void widgetDefaultSelected(SelectionEvent e) {
680 fBackgroundDefaultRadioButton = new Button(backgroundComposite, SWT.RADIO | SWT.LEFT);
681 fBackgroundDefaultRadioButton.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.systemDefault")); //$NON-NLS-1$
682 fBackgroundDefaultRadioButton.addSelectionListener (backgroundSelectionListener);
683 fBackgroundCustomRadioButton = new Button(backgroundComposite, SWT.RADIO | SWT.LEFT);
684 fBackgroundCustomRadioButton.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.custom")); //$NON-NLS-1$
685 fBackgroundCustomRadioButton.addSelectionListener (backgroundSelectionListener);
686 fBackgroundColorEditor = new ColorEditor(backgroundComposite);
687 fBackgroundColorButton = fBackgroundColorEditor.getButton ();
689 Label label = new Label(colorComposite, SWT.LEFT);
690 label.setText (PreferencesMessages.getString("JavaEditorPreferencePage.foreground")); //$NON-NLS-1$
691 label.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
692 Composite editorComposite = new Composite (colorComposite, SWT.NONE);
694 GridLayout layout = new GridLayout();
695 layout.numColumns = 2;
696 layout.marginHeight = 0;
697 layout.marginWidth = 0;
698 editorComposite.setLayout(layout);
700 GridData gd = new GridData (GridData.FILL_BOTH);
701 editorComposite.setLayoutData (gd);
702 fSyntaxColorList = new List (editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
703 gd = new GridData (GridData.FILL_BOTH);
704 gd.heightHint = convertHeightInCharsToPixels (5);
705 fSyntaxColorList.setLayoutData (gd);
706 Composite stylesComposite = new Composite (editorComposite, SWT.NONE);
707 layout = new GridLayout ();
708 layout.marginHeight = 0;
709 layout.marginWidth = 0;
710 layout.numColumns = 2;
711 stylesComposite.setLayout(layout);
713 stylesComposite.setLayoutData (new GridData(GridData.FILL_BOTH));
714 label = new Label(stylesComposite, SWT.LEFT);
715 label.setText(PreferencesMessages.getString ("JavaEditorPreferencePage.color")); //$NON-NLS-1$
718 gd.horizontalAlignment = GridData.BEGINNING;
719 label.setLayoutData(gd);
721 fSyntaxForegroundColorEditor = new ColorEditor(stylesComposite);
722 Button foregroundColorButton = fSyntaxForegroundColorEditor.getButton();
723 gd = new GridData(GridData.FILL_HORIZONTAL);
724 gd.horizontalAlignment = GridData.BEGINNING;
725 foregroundColorButton.setLayoutData (gd);
727 fBoldCheckBox = new Button (stylesComposite, SWT.CHECK);
728 fBoldCheckBox.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.bold")); //$NON-NLS-1$
730 gd = new GridData (GridData.FILL_HORIZONTAL);
731 gd.horizontalAlignment = GridData.BEGINNING;
732 gd.horizontalSpan = 2;
733 fBoldCheckBox.setLayoutData (gd);
735 fItalicCheckBox = new Button (stylesComposite, SWT.CHECK);
736 fItalicCheckBox.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.italic")); //$NON-NLS-1$
738 gd = new GridData (GridData.FILL_HORIZONTAL);
739 gd.horizontalAlignment = GridData.BEGINNING;
740 gd.horizontalSpan = 2;
741 fItalicCheckBox.setLayoutData (gd);
743 fUnderlineCheckBox = new Button (stylesComposite, SWT.CHECK);
744 fUnderlineCheckBox.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.underline")); //$NON-NLS-1$
746 gd = new GridData (GridData.FILL_HORIZONTAL);
747 gd.horizontalAlignment = GridData.BEGINNING;
748 gd.horizontalSpan = 2;
749 fUnderlineCheckBox.setLayoutData (gd);
751 fStrikeThroughCheckBox = new Button (stylesComposite, SWT.CHECK);
752 fStrikeThroughCheckBox.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.strikethrough")); //$NON-NLS-1$
754 gd = new GridData (GridData.FILL_HORIZONTAL);
755 gd.horizontalAlignment = GridData.BEGINNING;
756 gd.horizontalSpan = 2;
757 fStrikeThroughCheckBox.setLayoutData (gd);
759 label = new Label (colorComposite, SWT.LEFT);
760 label.setText (PreferencesMessages.getString ("JavaEditorPreferencePage.preview")); //$NON-NLS-1$
761 label.setLayoutData (new GridData (GridData.FILL_HORIZONTAL));
762 Control previewer = createPreviewer (colorComposite);
764 gd = new GridData (GridData.FILL_BOTH);
765 gd.widthHint = convertWidthInCharsToPixels (20);
766 gd.heightHint = convertHeightInCharsToPixels (5);
767 previewer.setLayoutData (gd);
769 fSyntaxColorList.addSelectionListener (new SelectionListener () {
770 public void widgetDefaultSelected(SelectionEvent e) {
774 public void widgetSelected(SelectionEvent e) {
775 handleSyntaxColorListSelection();
779 foregroundColorButton.addSelectionListener (new SelectionListener() {
780 public void widgetDefaultSelected(SelectionEvent e) {
784 public void widgetSelected(SelectionEvent e) {
785 int i = fSyntaxColorList.getSelectionIndex();
786 String key = fSyntaxColorListModel[i][1];
787 PreferenceConverter.setValue(fOverlayStore, key, fSyntaxForegroundColorEditor.getColorValue ());
791 fBackgroundColorButton.addSelectionListener (new SelectionListener() {
792 public void widgetDefaultSelected (SelectionEvent e) {
796 public void widgetSelected (SelectionEvent e) {
797 PreferenceConverter.setValue (fOverlayStore, PreferenceConstants.EDITOR_BACKGROUND_COLOR, fBackgroundColorEditor.getColorValue ());
801 fBoldCheckBox.addSelectionListener (new SelectionListener () {
802 public void widgetDefaultSelected (SelectionEvent e) {
806 public void widgetSelected (SelectionEvent e) {
807 int i = fSyntaxColorList.getSelectionIndex ();
808 String key = fSyntaxColorListModel[i][1];
809 fOverlayStore.setValue (key + BOLD, fBoldCheckBox.getSelection ());
813 fItalicCheckBox.addSelectionListener (new SelectionListener () {
814 public void widgetDefaultSelected (SelectionEvent e) {
818 public void widgetSelected (SelectionEvent e) {
819 int i = fSyntaxColorList.getSelectionIndex ();
820 String key = fSyntaxColorListModel[i][1];
821 fOverlayStore.setValue (key + ITALIC, fItalicCheckBox.getSelection ());
825 fUnderlineCheckBox.addSelectionListener (new SelectionListener () {
826 public void widgetDefaultSelected (SelectionEvent e) {
830 public void widgetSelected (SelectionEvent e) {
831 int i = fSyntaxColorList.getSelectionIndex ();
832 String key = fSyntaxColorListModel[i][1];
833 fOverlayStore.setValue (key + UNDERLINE, fUnderlineCheckBox.getSelection ());
837 fStrikeThroughCheckBox.addSelectionListener (new SelectionListener () {
838 public void widgetDefaultSelected (SelectionEvent e) {
842 public void widgetSelected (SelectionEvent e) {
843 int i = fSyntaxColorList.getSelectionIndex ();
844 String key = fSyntaxColorListModel[i][1];
845 fOverlayStore.setValue (key + STRIKETHROUGH, fStrikeThroughCheckBox.getSelection ());
849 return colorComposite;
852 private Control createPreviewer(Composite parent) {
853 Preferences coreStore = createTemporaryCorePreferenceStore();
854 fJavaTextTools = new JavaTextTools(fOverlayStore, coreStore, false);
855 IPreferenceStore generalTextStore = EditorsUI.getPreferenceStore();
856 IPreferenceStore store = new ChainedPreferenceStore (
857 new IPreferenceStore[] {
859 new PreferencesAdapter (createTemporaryCorePreferenceStore ()),
862 fPreviewViewer = new JavaSourceViewer(parent, null, null, false, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER, store);
863 JavaTextTools tools = PHPeclipsePlugin.getDefault().getJavaTextTools();
864 PHPSourceViewerConfiguration configuration = new PHPSourceViewerConfiguration(
865 tools.getColorManager(), store, null,
866 IPHPPartitions.PHP_PARTITIONING);
867 // PHPSourceViewerConfiguration configuration =new
868 // PHPSourceViewerConfiguration(fJavaTextTools, null,
869 // IPHPPartitions.PHP_PARTITIONING);
870 fPreviewViewer.configure(configuration);
872 Font font = JFaceResources.getFont (PreferenceConstants.EDITOR_TEXT_FONT);
873 fPreviewViewer.getTextWidget ().setFont (font);
874 new JavaSourcePreviewerUpdater (fPreviewViewer, configuration, store);
875 fPreviewViewer.setEditable (false);
876 String content = loadPreviewContentFromFile ("ColorSettingPreviewCode.txt"); //$NON-NLS-1$
877 IDocument document = new Document (content);
878 fJavaTextTools.setupJavaDocumentPartitioner (document, IPHPPartitions.PHP_PARTITIONING);
879 fPreviewViewer.setDocument (document);
881 return fPreviewViewer.getControl ();
884 private Preferences createTemporaryCorePreferenceStore() {
885 Preferences result = new Preferences();
886 result.setValue (COMPILER_TASK_TAGS, "TASK"); //$NON-NLS-1$
890 private Control createAppearancePage(Composite parent) {
891 Composite appearanceComposite = new Composite(parent, SWT.NONE);
892 GridLayout layout = new GridLayout();
893 layout.numColumns = 2;
894 appearanceComposite.setLayout(layout);
896 // Inserts a hyper-link to the General Editor preferences page
897 // TODO Can probably be removed post 1.5.0?
898 String label = PreferencesMessages
899 .getString("JavaEditorPreferencePage.appearanceTabLink");
900 Link link = new Link(appearanceComposite, SWT.NONE);
901 GridData gridPosition = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
902 gridPosition.horizontalSpan = 2;
903 link.setLayoutData(gridPosition);
906 link.addListener(SWT.Selection, new Listener () {
907 public void handleEvent(Event event) {
908 String u = event.text;
909 PreferencesUtil.createPreferenceDialogOn(getShell(), u, null, null);
912 String tooltip = PreferencesMessages
913 .getString("JavaEditorPreferencePage.appearanceTabTooltip");
914 link.setToolTipText(tooltip);
916 label = PreferencesMessages
917 .getString("JavaEditorPreferencePage.displayedTabWidth"); //$NON-NLS-1$
918 addTextField(appearanceComposite, label,
919 PreferenceConstants.EDITOR_TAB_WIDTH, 3, 0, true);
920 label = PreferencesMessages
921 .getString("JavaEditorPreferencePage.printMarginColumn"); //$NON-NLS-1$
925 AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN,
927 label = PreferencesMessages
928 .getString("JavaEditorPreferencePage.showOverviewRuler"); //$NON-NLS-1$
932 AbstractDecoratedTextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER,
934 label = PreferencesMessages
935 .getString("JavaEditorPreferencePage.highlightMatchingBrackets"); //$NON-NLS-1$
936 addCheckBox(appearanceComposite, label,
937 PreferenceConstants.EDITOR_MATCHING_BRACKETS, 0);
938 label = PreferencesMessages
939 .getString("JavaEditorPreferencePage.highlightCurrentLine"); //$NON-NLS-1$
943 AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE,
945 label = PreferencesMessages
946 .getString("JavaEditorPreferencePage.showPrintMargin"); //$NON-NLS-1$
950 AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN,
952 label = PreferencesMessages
953 .getString("JavaEditorPreferencePage.markOccurrences"); //$NON-NLS-1$
954 // Button master= addCheckBox(appearanceComposite, label,
955 // PreferenceConstants.EDITOR_MARK_OCCURRENCES, 0); //$NON-NLS-1$
956 label = PreferencesMessages
957 .getString("JavaEditorPreferencePage.stickyOccurrences"); //$NON-NLS-1$
958 // fStickyOccurrencesButton= addCheckBox(appearanceComposite, label,
959 // PreferenceConstants.EDITOR_STICKY_OCCURRENCES, 0); //$NON-NLS-1$
960 // createDependency(master, fStickyOccurrencesButton);
961 Label l = new Label(appearanceComposite, SWT.LEFT);
962 GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
963 gd.horizontalSpan = 2;
964 gd.heightHint = convertHeightInCharsToPixels(1) / 2;
966 l = new Label(appearanceComposite, SWT.LEFT);
967 l.setText(PreferencesMessages
968 .getString("JavaEditorPreferencePage.appearanceOptions")); //$NON-NLS-1$
969 gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
970 gd.horizontalSpan = 2;
972 Composite editorComposite = new Composite(appearanceComposite, SWT.NONE);
973 layout = new GridLayout();
974 layout.numColumns = 2;
975 layout.marginHeight = 0;
976 layout.marginWidth = 0;
977 editorComposite.setLayout(layout);
978 gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL
979 | GridData.FILL_VERTICAL);
980 gd.horizontalSpan = 2;
981 editorComposite.setLayoutData(gd);
982 fAppearanceColorList = new List(editorComposite, SWT.SINGLE
983 | SWT.V_SCROLL | SWT.BORDER);
984 gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING
985 | GridData.FILL_HORIZONTAL);
986 gd.heightHint = convertHeightInCharsToPixels(8);
987 fAppearanceColorList.setLayoutData(gd);
988 Composite stylesComposite = new Composite(editorComposite, SWT.NONE);
989 layout = new GridLayout();
990 layout.marginHeight = 0;
991 layout.marginWidth = 0;
992 layout.numColumns = 2;
993 stylesComposite.setLayout(layout);
994 stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
995 l = new Label(stylesComposite, SWT.LEFT);
996 l.setText(PreferencesMessages
997 .getString("JavaEditorPreferencePage.color")); //$NON-NLS-1$
999 gd.horizontalAlignment = GridData.BEGINNING;
1000 l.setLayoutData(gd);
1001 fAppearanceColorEditor = new ColorEditor(stylesComposite);
1002 Button foregroundColorButton = fAppearanceColorEditor.getButton();
1003 gd = new GridData(GridData.FILL_HORIZONTAL);
1004 gd.horizontalAlignment = GridData.BEGINNING;
1005 foregroundColorButton.setLayoutData(gd);
1006 fAppearanceColorList.addSelectionListener(new SelectionListener() {
1007 public void widgetDefaultSelected(SelectionEvent e) {
1011 public void widgetSelected(SelectionEvent e) {
1012 handleAppearanceColorListSelection();
1015 foregroundColorButton.addSelectionListener(new SelectionListener() {
1016 public void widgetDefaultSelected(SelectionEvent e) {
1020 public void widgetSelected(SelectionEvent e) {
1021 int i = fAppearanceColorList.getSelectionIndex();
1022 String key = fAppearanceColorListModel[i][1];
1023 PreferenceConverter.setValue(fOverlayStore, key,
1024 fAppearanceColorEditor.getColorValue());
1027 return appearanceComposite;
1030 // private Control createAnnotationsPage(Composite parent) {
1031 // Composite composite = new Composite(parent, SWT.NULL);
1032 // GridLayout layout = new GridLayout();
1033 // layout.numColumns = 2;
1034 // composite.setLayout(layout);
1035 // String text = PreferencesMessages
1036 // .getString("JavaEditorPreferencePage.analyseAnnotationsWhileTyping");
1038 // addCheckBox(composite, text,
1039 // PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS, 0);
1040 // text = PreferencesMessages
1041 // .getString("JavaEditorPreferencePage.showQuickFixables"); //$NON-NLS-1$
1042 // addCheckBox(composite, text,
1043 // PreferenceConstants.EDITOR_CORRECTION_INDICATION, 0);
1044 // addFiller(composite);
1045 // Label label = new Label(composite, SWT.LEFT);
1046 // label.setText(PreferencesMessages
1047 // .getString("JavaEditorPreferencePage.annotationPresentationOptions"));
1049 // GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
1050 // gd.horizontalSpan = 2;
1051 // label.setLayoutData(gd);
1052 // Composite editorComposite = new Composite(composite, SWT.NONE);
1053 // layout = new GridLayout();
1054 // layout.numColumns = 2;
1055 // layout.marginHeight = 0;
1056 // layout.marginWidth = 0;
1057 // editorComposite.setLayout(layout);
1058 // gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL |
1059 // GridData.FILL_VERTICAL);
1060 // gd.horizontalSpan = 2;
1061 // editorComposite.setLayoutData(gd);
1062 // fAnnotationList = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL
1064 // gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING
1065 // | GridData.FILL_HORIZONTAL);
1066 // gd.heightHint = convertHeightInCharsToPixels(10);
1067 // fAnnotationList.setLayoutData(gd);
1068 // Composite optionsComposite = new Composite(editorComposite, SWT.NONE);
1069 // layout = new GridLayout();
1070 // layout.marginHeight = 0;
1071 // layout.marginWidth = 0;
1072 // layout.numColumns = 2;
1073 // optionsComposite.setLayout(layout);
1074 // optionsComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
1075 // fShowInTextCheckBox = new Button(optionsComposite, SWT.CHECK);
1076 // fShowInTextCheckBox.setText(PreferencesMessages
1077 // .getString("JavaEditorPreferencePage.annotations.showInText"));
1079 // gd = new GridData(GridData.FILL_HORIZONTAL);
1080 // gd.horizontalAlignment = GridData.BEGINNING;
1081 // gd.horizontalSpan = 2;
1082 // fShowInTextCheckBox.setLayoutData(gd);
1083 // fDecorationStyleCombo = new Combo(optionsComposite, SWT.READ_ONLY);
1084 // for (int i = 0; i < fAnnotationDecorationListModel.length; i++)
1085 // fDecorationStyleCombo.add(fAnnotationDecorationListModel[i][0]);
1086 // gd = new GridData(GridData.FILL_HORIZONTAL);
1087 // gd.horizontalAlignment = GridData.BEGINNING;
1088 // gd.horizontalSpan = 2;
1089 // gd.horizontalIndent = 20;
1090 // fDecorationStyleCombo.setLayoutData(gd);
1091 // fHighlightInTextCheckBox = new Button(optionsComposite, SWT.CHECK);
1092 // fHighlightInTextCheckBox.setText(PreferencesMessages
1093 // .getString("TextEditorPreferencePage.annotations.highlightInText"));
1095 // gd = new GridData(GridData.FILL_HORIZONTAL);
1096 // gd.horizontalAlignment = GridData.BEGINNING;
1097 // gd.horizontalSpan = 2;
1098 // fHighlightInTextCheckBox.setLayoutData(gd);
1099 // fShowInOverviewRulerCheckBox = new Button(optionsComposite, SWT.CHECK);
1100 // fShowInOverviewRulerCheckBox.setText(PreferencesMessages
1101 // .getString("JavaEditorPreferencePage.annotations.showInOverviewRuler"));
1103 // gd = new GridData(GridData.FILL_HORIZONTAL);
1104 // gd.horizontalAlignment = GridData.BEGINNING;
1105 // gd.horizontalSpan = 2;
1106 // fShowInOverviewRulerCheckBox.setLayoutData(gd);
1107 // fShowInVerticalRulerCheckBox = new Button(optionsComposite, SWT.CHECK);
1108 // fShowInVerticalRulerCheckBox.setText(PreferencesMessages
1109 // .getString("JavaEditorPreferencePage.annotations.showInVerticalRuler"));
1111 // gd = new GridData(GridData.FILL_HORIZONTAL);
1112 // gd.horizontalAlignment = GridData.BEGINNING;
1113 // gd.horizontalSpan = 2;
1114 // fShowInVerticalRulerCheckBox.setLayoutData(gd);
1115 // label = new Label(optionsComposite, SWT.LEFT);
1116 // label.setText(PreferencesMessages
1117 // .getString("JavaEditorPreferencePage.annotations.color")); //$NON-NLS-1$
1118 // gd = new GridData();
1119 // gd.horizontalAlignment = GridData.BEGINNING;
1120 // label.setLayoutData(gd);
1121 // fAnnotationForegroundColorEditor = new ColorEditor(optionsComposite);
1122 // Button foregroundColorButton =
1123 // fAnnotationForegroundColorEditor.getButton();
1124 // gd = new GridData(GridData.FILL_HORIZONTAL);
1125 // gd.horizontalAlignment = GridData.BEGINNING;
1126 // foregroundColorButton.setLayoutData(gd);
1127 // fAnnotationList.addSelectionListener(new SelectionListener() {
1128 // public void widgetDefaultSelected(SelectionEvent e) {
1131 // public void widgetSelected(SelectionEvent e) {
1132 // handleAnnotationListSelection();
1135 // fShowInTextCheckBox.addSelectionListener(new SelectionListener() {
1136 // public void widgetDefaultSelected(SelectionEvent e) {
1139 // public void widgetSelected(SelectionEvent e) {
1140 // int i = fAnnotationList.getSelectionIndex();
1141 // String key = fAnnotationColorListModel[i][2];
1142 // fOverlayStore.setValue(key, fShowInTextCheckBox.getSelection());
1143 // String decorationKey = fAnnotationColorListModel[i][6];
1144 // fDecorationStyleCombo.setEnabled(decorationKey != null
1145 // && fShowInTextCheckBox.getSelection());
1148 // fHighlightInTextCheckBox.addSelectionListener(new SelectionListener() {
1149 // public void widgetDefaultSelected(SelectionEvent e) {
1152 // public void widgetSelected(SelectionEvent e) {
1153 // int i = fAnnotationList.getSelectionIndex();
1154 // String key = fAnnotationColorListModel[i][4];
1155 // fOverlayStore.setValue(key, fHighlightInTextCheckBox.getSelection());
1158 // fShowInOverviewRulerCheckBox.addSelectionListener(new SelectionListener()
1160 // public void widgetDefaultSelected(SelectionEvent e) {
1163 // public void widgetSelected(SelectionEvent e) {
1164 // int i = fAnnotationList.getSelectionIndex();
1165 // String key = fAnnotationColorListModel[i][3];
1167 // .setValue(key, fShowInOverviewRulerCheckBox.getSelection());
1170 // fShowInVerticalRulerCheckBox.addSelectionListener(new SelectionListener()
1172 // public void widgetDefaultSelected(SelectionEvent e) {
1175 // public void widgetSelected(SelectionEvent e) {
1176 // int i = fAnnotationList.getSelectionIndex();
1177 // String key = fAnnotationColorListModel[i][5];
1179 // .setValue(key, fShowInVerticalRulerCheckBox.getSelection());
1182 // foregroundColorButton.addSelectionListener(new SelectionListener() {
1183 // public void widgetDefaultSelected(SelectionEvent e) {
1186 // public void widgetSelected(SelectionEvent e) {
1187 // int i = fAnnotationList.getSelectionIndex();
1188 // String key = fAnnotationColorListModel[i][1];
1189 // PreferenceConverter.setValue(fOverlayStore, key,
1190 // fAnnotationForegroundColorEditor.getColorValue());
1193 // fDecorationStyleCombo.addSelectionListener(new SelectionListener() {
1197 // public void widgetDefaultSelected(SelectionEvent e) {
1203 // public void widgetSelected(SelectionEvent e) {
1204 // int i = fAnnotationList.getSelectionIndex();
1205 // String key = fAnnotationColorListModel[i][6];
1206 // if (key != null) {
1207 // for (int j = 0; j < fAnnotationDecorationListModel.length; j++) {
1208 // if (fAnnotationDecorationListModel[j][0]
1209 // .equals(fDecorationStyleCombo.getText())) {
1210 // fOverlayStore.setValue(key, fAnnotationDecorationListModel[j][1]);
1217 // return composite;
1219 // private String[][] createAnnotationTypeListModel(
1220 // MarkerAnnotationPreferences preferences) {
1221 // ArrayList listModelItems = new ArrayList();
1222 // SortedSet sortedPreferences = new TreeSet(new Comparator() {
1224 // * @see java.util.Comparator#compare(java.lang.Object,
1225 // * java.lang.Object)
1227 // public int compare(Object o1, Object o2) {
1228 // if (!(o2 instanceof AnnotationPreference))
1230 // if (!(o1 instanceof AnnotationPreference))
1232 // AnnotationPreference a1 = (AnnotationPreference) o1;
1233 // AnnotationPreference a2 = (AnnotationPreference) o2;
1234 // return Collator.getInstance().compare(a1.getPreferenceLabel(),
1235 // a2.getPreferenceLabel());
1238 // sortedPreferences.addAll(preferences.getAnnotationPreferences());
1239 // Iterator e = sortedPreferences.iterator();
1240 // while (e.hasNext()) {
1241 // AnnotationPreference info = (AnnotationPreference) e.next();
1242 // listModelItems.add(new String[] { info.getPreferenceLabel(),
1243 // info.getColorPreferenceKey(), info.getTextPreferenceKey(),
1244 // info.getOverviewRulerPreferenceKey(),
1245 // info.getHighlightPreferenceKey(),
1246 // info.getVerticalRulerPreferenceKey(),
1247 // info.getTextStylePreferenceKey() });
1249 // String[][] items = new String[listModelItems.size()][];
1250 // listModelItems.toArray(items);
1254 private Control createTypingPage(Composite parent) {
1255 Composite composite = new Composite(parent, SWT.NONE);
1256 GridLayout layout = new GridLayout();
1257 layout.numColumns = 1;
1258 composite.setLayout(layout);
1260 // label = PreferencesMessages
1261 // .getString("JavaEditorPreferencePage.overwriteMode");
1263 // addCheckBox(composite, label,
1264 // PreferenceConstants.EDITOR_DISABLE_OVERWRITE_MODE, 1);
1265 // addFiller(composite);
1267 // label = PreferencesMessages
1268 // .getString("JavaEditorPreferencePage.smartHomeEnd");
1270 // addCheckBox(composite, label,
1271 // PreferenceConstants.EDITOR_SMART_HOME_END, 1);
1273 // label = PreferencesMessages
1274 // .getString("JavaEditorPreferencePage.subWordNavigation");
1276 // addCheckBox(composite, label,
1277 // PreferenceConstants.EDITOR_SUB_WORD_NAVIGATION, 1);
1278 // addFiller(composite);
1279 Group group = new Group(composite, SWT.NONE);
1280 layout = new GridLayout();
1281 layout.numColumns = 2;
1282 group.setLayout(layout);
1283 group.setText(PreferencesMessages
1284 .getString("JavaEditorPreferencePage.typing.description")); //$NON-NLS-1$
1286 label = PreferencesMessages
1287 .getString("JavaEditorPreferencePage.wrapWords");//$NON-NLS-1$
1288 addCheckBox(group, label, PreferenceConstants.EDITOR_WRAP_WORDS, 1);
1290 label = PreferencesMessages
1291 .getString("JavaEditorPreferencePage.wrapStringsDQ");//$NON-NLS-1$
1292 Button button = addCheckBox(group, label,
1293 PreferenceConstants.EDITOR_WRAP_STRINGS_DQ, 1);
1295 label = PreferencesMessages
1296 .getString("JavaEditorPreferencePage.escapeStringsDQ");//$NON-NLS-1$
1297 fEscapeStringsButtonDQ = addCheckBox(group, label,
1298 PreferenceConstants.EDITOR_ESCAPE_STRINGS_DQ, 1);
1299 createDependency(button, fEscapeStringsButtonDQ);
1301 label = PreferencesMessages
1302 .getString("JavaEditorPreferencePage.wrapStringsSQ");//$NON-NLS-1$
1303 button = addCheckBox(group, label,
1304 PreferenceConstants.EDITOR_WRAP_STRINGS_SQ, 1);
1306 label = PreferencesMessages
1307 .getString("JavaEditorPreferencePage.escapeStringsSQ");
1309 fEscapeStringsButtonSQ = addCheckBox(group, label,
1310 PreferenceConstants.EDITOR_ESCAPE_STRINGS_SQ, 1);
1311 createDependency(button, fEscapeStringsButtonSQ);
1313 label = PreferencesMessages
1314 .getString("JavaEditorPreferencePage.smartPaste");
1316 addCheckBox(group, label, PreferenceConstants.EDITOR_SMART_PASTE, 1);
1318 label = PreferencesMessages
1319 .getString("JavaEditorPreferencePage.insertSpaceForTabs");
1321 addCheckBox(group, label, PreferenceConstants.EDITOR_SPACES_FOR_TABS, 1);
1323 label = PreferencesMessages
1324 .getString("JavaEditorPreferencePage.closeStringsDQ");
1326 addCheckBox(group, label,
1327 PreferenceConstants.EDITOR_CLOSE_STRINGS_DQ_PHP, 1);
1328 label = PreferencesMessages
1329 .getString("JavaEditorPreferencePage.closeStringsSQ");
1331 addCheckBox(group, label,
1332 PreferenceConstants.EDITOR_CLOSE_STRINGS_SQ_PHP, 1);
1334 label = PreferencesMessages
1335 .getString("JavaEditorPreferencePage.closeBrackets");
1337 addCheckBox(group, label,
1338 PreferenceConstants.EDITOR_CLOSE_BRACKETS_PHP, 1);
1340 // label = PreferencesMessages
1341 // .getString("JavaEditorPreferencePage.closeBraces");
1343 // addCheckBox(group, label, PreferenceConstants.EDITOR_CLOSE_BRACES,
1346 label = PreferencesMessages
1347 .getString("JavaEditorPreferencePage.closeJavaDocs");
1349 button = addCheckBox(group, label,
1350 PreferenceConstants.EDITOR_CLOSE_JAVADOCS, 1);
1351 label = PreferencesMessages
1352 .getString("JavaEditorPreferencePage.formatJavaDocs");
1354 button = addCheckBox(group, label,
1355 PreferenceConstants.EDITOR_FORMAT_JAVADOCS, 1);
1358 // label = PreferencesMessages
1359 // .getString("JavaEditorPreferencePage.addJavaDocTags");
1361 // fAddJavaDocTagsButton = addCheckBox(group, label,
1362 // PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS, 1);
1363 // createDependency(button, fAddJavaDocTagsButton);
1367 // private void addFiller(Composite composite) {
1368 // Label filler = new Label(composite, SWT.LEFT);
1369 // GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
1370 // gd.horizontalSpan = 2;
1371 // gd.heightHint = convertHeightInCharsToPixels(1) / 2;
1372 // filler.setLayoutData(gd);
1375 private static void indent(Control control) {
1376 GridData gridData = new GridData();
1377 gridData.horizontalIndent = 20;
1378 control.setLayoutData(gridData);
1381 private static void createDependency(final Button master,
1382 final Control slave) {
1384 master.addSelectionListener(new SelectionListener() {
1385 public void widgetSelected(SelectionEvent e) {
1386 slave.setEnabled(master.getSelection());
1389 public void widgetDefaultSelected(SelectionEvent e) {
1394 // private void addCompletionRadioButtons(Composite contentAssistComposite) {
1395 // Composite completionComposite = new Composite(contentAssistComposite,
1397 // GridData ccgd = new GridData();
1398 // ccgd.horizontalSpan = 2;
1399 // completionComposite.setLayoutData(ccgd);
1400 // GridLayout ccgl = new GridLayout();
1401 // ccgl.marginWidth = 0;
1402 // ccgl.numColumns = 2;
1403 // completionComposite.setLayout(ccgl);
1404 // // SelectionListener completionSelectionListener= new SelectionAdapter()
1406 // // public void widgetSelected(SelectionEvent e) {
1407 // // boolean insert= fCompletionInsertsRadioButton.getSelection();
1408 // // fOverlayStore.setValue(PreferenceConstants.CODEASSIST_INSERT_COMPLETION,
1413 // // fCompletionInsertsRadioButton= new Button(completionComposite,
1416 // // fCompletionInsertsRadioButton.setText(PreferencesMessages.getString("JavaEditorPreferencePage.completionInserts"));
1418 // // fCompletionInsertsRadioButton.setLayoutData(new GridData());
1419 // // fCompletionInsertsRadioButton.addSelectionListener(completionSelectionListener);
1421 // // fCompletionOverwritesRadioButton= new Button(completionComposite,
1422 // // SWT.RADIO | SWT.LEFT);
1423 // // fCompletionOverwritesRadioButton.setText(PreferencesMessages.getString("JavaEditorPreferencePage.completionOverwrites"));
1425 // // fCompletionOverwritesRadioButton.setLayoutData(new GridData());
1426 // // fCompletionOverwritesRadioButton.addSelectionListener(completionSelectionListener);
1429 private Control createNavigationPage(Composite parent) {
1430 Composite composite = new Composite(parent, SWT.NULL);
1431 GridLayout layout = new GridLayout();
1432 layout.numColumns = 2;
1433 composite.setLayout(layout);
1434 String text = PreferencesMessages
1435 .getString("JavaEditorPreferencePage.navigation.browserLikeLinks");
1437 fBrowserLikeLinksCheckBox = addCheckBox(composite, text,
1438 PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS, 0);
1439 fBrowserLikeLinksCheckBox.addSelectionListener(new SelectionListener() {
1440 public void widgetSelected(SelectionEvent e) {
1441 boolean state = fBrowserLikeLinksCheckBox.getSelection();
1442 fBrowserLikeLinksKeyModifierText.setEnabled(state);
1443 handleBrowserLikeLinksKeyModifierModified();
1446 public void widgetDefaultSelected(SelectionEvent e) {
1449 // Text field for modifier string
1450 text = PreferencesMessages
1451 .getString("JavaEditorPreferencePage.navigation.browserLikeLinksKeyModifier");
1453 fBrowserLikeLinksKeyModifierText = addTextField(composite, text,
1454 PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER, 20,
1456 fBrowserLikeLinksKeyModifierText.setTextLimit(Text.LIMIT);
1458 if (computeStateMask(fOverlayStore
1459 .getString(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER)) == -1) {
1460 // Fix possible illegal modifier string
1461 int stateMask = fOverlayStore
1462 .getInt(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK);
1463 if (stateMask == -1)
1464 fBrowserLikeLinksKeyModifierText.setText(""); //$NON-NLS-1$
1466 fBrowserLikeLinksKeyModifierText.setText(EditorUtility
1467 .getModifierString(stateMask));
1469 fBrowserLikeLinksKeyModifierText.addKeyListener(new KeyListener() {
1470 private boolean isModifierCandidate;
1472 public void keyPressed(KeyEvent e) {
1473 isModifierCandidate = e.keyCode > 0 && e.character == 0
1474 && e.stateMask == 0;
1477 public void keyReleased(KeyEvent e) {
1478 if (isModifierCandidate && e.stateMask > 0
1479 && e.stateMask == e.stateMask && e.character == 0) {// &&
1485 String modifierString = fBrowserLikeLinksKeyModifierText
1487 Point selection = fBrowserLikeLinksKeyModifierText
1489 int i = selection.x - 1;
1491 && Character.isWhitespace(modifierString.charAt(i))) {
1494 boolean needsPrefixDelimiter = i > -1
1495 && !String.valueOf(modifierString.charAt(i))
1499 while (i < modifierString.length()
1500 && Character.isWhitespace(modifierString.charAt(i))) {
1503 boolean needsPostfixDelimiter = i < modifierString.length()
1504 && !String.valueOf(modifierString.charAt(i))
1507 String insertString;
1509 if (needsPrefixDelimiter && needsPostfixDelimiter)
1510 insertString = PreferencesMessages
1511 .getFormattedString(
1512 "JavaEditorPreferencePage.navigation.insertDelimiterAndModifierAndDelimiter",
1513 new String[] { Action
1514 .findModifierString(e.stateMask) }); //$NON-NLS-1$
1515 else if (needsPrefixDelimiter)
1516 insertString = PreferencesMessages
1517 .getFormattedString(
1518 "JavaEditorPreferencePage.navigation.insertDelimiterAndModifier",
1519 new String[] { Action
1520 .findModifierString(e.stateMask) }); //$NON-NLS-1$
1521 else if (needsPostfixDelimiter)
1522 insertString = PreferencesMessages
1523 .getFormattedString(
1524 "JavaEditorPreferencePage.navigation.insertModifierAndDelimiter",
1525 new String[] { Action
1526 .findModifierString(e.stateMask) }); //$NON-NLS-1$
1528 insertString = Action.findModifierString(e.stateMask);
1530 fBrowserLikeLinksKeyModifierText.insert(insertString);
1535 fBrowserLikeLinksKeyModifierText
1536 .addModifyListener(new ModifyListener() {
1537 public void modifyText(ModifyEvent e) {
1538 handleBrowserLikeLinksKeyModifierModified();
1544 private void handleBrowserLikeLinksKeyModifierModified() {
1545 String modifiers = fBrowserLikeLinksKeyModifierText.getText();
1546 int stateMask = computeStateMask(modifiers);
1547 if (fBrowserLikeLinksCheckBox.getSelection()
1548 && (stateMask == -1 || (stateMask & SWT.SHIFT) != 0)) {
1549 if (stateMask == -1)
1550 fBrowserLikeLinksKeyModifierStatus = new StatusInfo(
1553 .getFormattedString(
1554 "JavaEditorPreferencePage.navigation.modifierIsNotValid", modifiers)); //$NON-NLS-1$
1556 fBrowserLikeLinksKeyModifierStatus = new StatusInfo(
1559 .getString("JavaEditorPreferencePage.navigation.shiftIsDisabled"));
1562 StatusUtil.applyToStatusLine(this,
1563 fBrowserLikeLinksKeyModifierStatus);
1565 fBrowserLikeLinksKeyModifierStatus = new StatusInfo();
1566 updateStatus(fBrowserLikeLinksKeyModifierStatus);
1570 // private IStatus getBrowserLikeLinksKeyModifierStatus() {
1571 // if (fBrowserLikeLinksKeyModifierStatus == null)
1572 // fBrowserLikeLinksKeyModifierStatus = new StatusInfo();
1573 // return fBrowserLikeLinksKeyModifierStatus;
1577 * Computes the state mask for the given modifier string.
1580 * the string with the modifiers, separated by '+', '-', ';', ','
1582 * @return the state mask or -1 if the input is invalid
1584 private int computeStateMask(String modifiers) {
1585 if (modifiers == null)
1587 if (modifiers.length() == 0)
1590 StringTokenizer modifierTokenizer = new StringTokenizer(modifiers,
1591 ",;.:+-* "); //$NON-NLS-1$
1592 while (modifierTokenizer.hasMoreTokens()) {
1593 int modifier = EditorUtility
1594 .findLocalizedModifier(modifierTokenizer.nextToken());
1595 if (modifier == 0 || (stateMask & modifier) == modifier)
1597 stateMask = stateMask | modifier;
1603 * @see PreferencePage#createContents(Composite)
1605 protected Control createContents(Composite parent) {
1606 initializeDefaultColors();
1607 fFoldingConfigurationBlock = new FoldingConfigurationBlock(
1609 fOverlayStore.load();
1610 fOverlayStore.start();
1611 TabFolder folder = new TabFolder(parent, SWT.NONE);
1612 folder.setLayout(new TabFolderLayout());
1613 folder.setLayoutData(new GridData(GridData.FILL_BOTH));
1614 TabItem item = new TabItem(folder, SWT.NONE);
1615 item.setText(PreferencesMessages
1616 .getString("JavaEditorPreferencePage.general")); //$NON-NLS-1$
1617 item.setControl(createAppearancePage(folder));
1618 item = new TabItem(folder, SWT.NONE);
1619 item.setText(PreferencesMessages
1620 .getString("JavaEditorPreferencePage.colors")); //$NON-NLS-1$
1621 item.setControl(createSyntaxPage(folder));
1623 // item = new TabItem(folder, SWT.NONE);
1624 // item.setText(PreferencesMessages
1625 // .getString("JavaEditorPreferencePage.annotationsTab.title"));
1627 // item.setControl(createAnnotationsPage(folder));
1628 item = new TabItem(folder, SWT.NONE);
1629 item.setText(PreferencesMessages
1630 .getString("JavaEditorPreferencePage.typing.tabTitle"));
1632 item.setControl(createTypingPage(folder));
1634 item = new TabItem(folder, SWT.NONE);
1635 item.setText(PreferencesMessages
1636 .getString("JavaEditorPreferencePage.hoverTab.title"));
1638 fJavaEditorHoverConfigurationBlock = new JavaEditorHoverConfigurationBlock(
1639 this, fOverlayStore);
1640 item.setControl(fJavaEditorHoverConfigurationBlock
1641 .createControl(folder));
1642 item = new TabItem(folder, SWT.NONE);
1643 item.setText(PreferencesMessages
1644 .getString("JavaEditorPreferencePage.navigationTab.title"));
1646 item.setControl(createNavigationPage(folder));
1647 item = new TabItem(folder, SWT.NONE);
1648 item.setText(PreferencesMessages
1649 .getString("JavaEditorPreferencePage.folding.title")); //$NON-NLS-1$
1650 item.setControl(fFoldingConfigurationBlock.createControl(folder));
1653 Dialog.applyDialogFont(folder);
1657 private void initialize() {
1659 for (int i = 0; i < fSyntaxColorListModel.length; i++)
1660 fSyntaxColorList.add(fSyntaxColorListModel[i][0]);
1661 fSyntaxColorList.getDisplay().asyncExec(new Runnable() {
1663 if (fSyntaxColorList != null && !fSyntaxColorList.isDisposed()) {
1664 fSyntaxColorList.select(0);
1665 handleSyntaxColorListSelection();
1669 for (int i = 0; i < fAppearanceColorListModel.length; i++)
1670 fAppearanceColorList.add(fAppearanceColorListModel[i][0]);
1671 fAppearanceColorList.getDisplay().asyncExec(new Runnable() {
1673 if (fAppearanceColorList != null
1674 && !fAppearanceColorList.isDisposed()) {
1675 fAppearanceColorList.select(0);
1676 handleAppearanceColorListSelection();
1680 // for (int i = 0; i < fAnnotationColorListModel.length; i++)
1681 // fAnnotationList.add(fAnnotationColorListModel[i][0]);
1682 // fAnnotationList.getDisplay().asyncExec(new Runnable() {
1683 // public void run() {
1684 // if (fAnnotationList != null && !fAnnotationList.isDisposed()) {
1685 // fAnnotationList.select(0);
1686 // handleAnnotationListSelection();
1690 // for (int i= 0; i < fContentAssistColorListModel.length; i++)
1691 // fContentAssistColorList.add(fContentAssistColorListModel[i][0]);
1692 // fContentAssistColorList.getDisplay().asyncExec(new Runnable() {
1693 // public void run() {
1694 // if (fContentAssistColorList != null &&
1695 // !fContentAssistColorList.isDisposed()) {
1696 // fContentAssistColorList.select(0);
1697 // handleContentAssistColorListSelection();
1701 fFoldingConfigurationBlock.initialize();
1704 private void initializeFields() {
1705 Iterator e = fColorButtons.keySet().iterator();
1706 while (e.hasNext()) {
1707 ColorEditor c = (ColorEditor) e.next();
1708 String key = (String) fColorButtons.get(c);
1709 RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
1710 c.setColorValue(rgb);
1712 e = fCheckBoxes.keySet().iterator();
1713 while (e.hasNext()) {
1714 Button b = (Button) e.next();
1715 String key = (String) fCheckBoxes.get(b);
1716 b.setSelection(fOverlayStore.getBoolean(key));
1718 e = fTextFields.keySet().iterator();
1719 while (e.hasNext()) {
1720 Text t = (Text) e.next();
1721 String key = (String) fTextFields.get(t);
1722 t.setText(fOverlayStore.getString(key));
1724 RGB rgb = PreferenceConverter.getColor(fOverlayStore,
1725 PreferenceConstants.EDITOR_BACKGROUND_COLOR);
1726 fBackgroundColorEditor.setColorValue(rgb);
1727 boolean default_ = fOverlayStore
1728 .getBoolean(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR);
1729 fBackgroundDefaultRadioButton.setSelection(default_);
1730 fBackgroundCustomRadioButton.setSelection(!default_);
1731 fBackgroundColorButton.setEnabled(!default_);
1732 // boolean closeJavaDocs = fOverlayStore
1733 // .getBoolean(PreferenceConstants.EDITOR_CLOSE_JAVADOCS);
1734 // fAddJavaDocTagsButton.setEnabled(closeJavaDocs);
1735 fEscapeStringsButtonDQ.setEnabled(fOverlayStore
1736 .getBoolean(PreferenceConstants.EDITOR_WRAP_STRINGS_DQ));
1737 fEscapeStringsButtonSQ.setEnabled(fOverlayStore
1738 .getBoolean(PreferenceConstants.EDITOR_WRAP_STRINGS_SQ));
1739 // boolean fillMethodArguments=
1740 // fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES);
1741 // fGuessMethodArgumentsButton.setEnabled(fillMethodArguments);
1742 // boolean completionInserts=
1743 // fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_INSERT_COMPLETION);
1744 // fCompletionInsertsRadioButton.setSelection(completionInserts);
1745 // fCompletionOverwritesRadioButton.setSelection(! completionInserts);
1747 fBrowserLikeLinksKeyModifierText.setEnabled(fBrowserLikeLinksCheckBox
1749 // boolean markOccurrences=
1750 // fOverlayStore.getBoolean(PreferenceConstants.EDITOR_MARK_OCCURRENCES);
1751 // fStickyOccurrencesButton.setEnabled(markOccurrences);
1752 updateAutoactivationControls();
1755 private void initializeDefaultColors() {
1756 if (!getPreferenceStore().contains(
1757 PreferenceConstants.EDITOR_BACKGROUND_COLOR)) {
1758 RGB rgb = getControl().getDisplay().getSystemColor(
1759 SWT.COLOR_LIST_BACKGROUND).getRGB();
1760 PreferenceConverter.setDefault(fOverlayStore,
1761 PreferenceConstants.EDITOR_BACKGROUND_COLOR, rgb);
1762 PreferenceConverter.setDefault(getPreferenceStore(),
1763 PreferenceConstants.EDITOR_BACKGROUND_COLOR, rgb);
1765 if (!getPreferenceStore().contains(
1766 PreferenceConstants.EDITOR_FOREGROUND_COLOR)) {
1767 RGB rgb = getControl().getDisplay().getSystemColor(
1768 SWT.COLOR_LIST_FOREGROUND).getRGB();
1769 PreferenceConverter.setDefault(fOverlayStore,
1770 PreferenceConstants.EDITOR_FOREGROUND_COLOR, rgb);
1771 PreferenceConverter.setDefault(getPreferenceStore(),
1772 PreferenceConstants.EDITOR_FOREGROUND_COLOR, rgb);
1776 private void updateAutoactivationControls() {
1777 // boolean autoactivation=
1778 // fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_AUTOACTIVATION);
1779 // fAutoInsertDelayText.setEnabled(autoactivation);
1780 // fAutoInsertDelayLabel.setEnabled(autoactivation);
1781 // fAutoInsertJavaTriggerText.setEnabled(autoactivation);
1782 // fAutoInsertJavaTriggerLabel.setEnabled(autoactivation);
1784 // fAutoInsertJavaDocTriggerText.setEnabled(autoactivation);
1785 // fAutoInsertJavaDocTriggerLabel.setEnabled(autoactivation);
1789 * @see PreferencePage#performOk()
1791 public boolean performOk() {
1792 // fJavaEditorHoverConfigurationBlock.performOk();
1793 fFoldingConfigurationBlock.performOk();
1796 PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK,
1797 computeStateMask(fBrowserLikeLinksKeyModifierText
1799 fOverlayStore.propagate();
1800 PHPeclipsePlugin.getDefault().savePluginPreferences();
1805 * @see PreferencePage#performDefaults()
1807 protected void performDefaults() {
1808 fOverlayStore.loadDefaults();
1810 handleSyntaxColorListSelection();
1811 handleAppearanceColorListSelection();
1812 // handleAnnotationListSelection();
1813 // handleContentAssistColorListSelection();
1814 // fJavaEditorHoverConfigurationBlock.performDefaults();
1815 fFoldingConfigurationBlock.performDefaults();
1816 super.performDefaults();
1817 fPreviewViewer.invalidateTextPresentation();
1821 * @see DialogPage#dispose()
1823 public void dispose() {
1824 fFoldingConfigurationBlock.dispose();
1826 if (fJavaTextTools != null) {
1827 fJavaTextTools.dispose();
1828 fJavaTextTools = null;
1830 if (fOverlayStore != null) {
1831 fOverlayStore.stop();
1832 fOverlayStore = null;
1834 if (fBackgroundColor != null && !fBackgroundColor.isDisposed())
1835 fBackgroundColor.dispose();
1839 private Button addCheckBox(Composite parent, String label, String key,
1841 Button checkBox = new Button(parent, SWT.CHECK);
1842 checkBox.setText(label);
1843 GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
1844 gd.horizontalIndent = indentation;
1845 gd.horizontalSpan = 2;
1846 checkBox.setLayoutData(gd);
1847 checkBox.addSelectionListener(fCheckBoxListener);
1848 fCheckBoxes.put(checkBox, key);
1852 private Text addTextField(Composite composite, String label, String key,
1853 int textLimit, int indentation, boolean isNumber) {
1854 return getTextControl(addLabelledTextField(composite, label, key,
1855 textLimit, indentation, isNumber));
1858 // private static Label getLabelControl(Control[] labelledTextField) {
1859 // return (Label) labelledTextField[0];
1862 private static Text getTextControl(Control[] labelledTextField) {
1863 return (Text) labelledTextField[1];
1867 * Returns an array of size 2: - first element is of type <code>Label</code>-
1868 * second element is of type <code>Text</code> Use
1869 * <code>getLabelControl</code> and <code>getTextControl</code> to get
1872 private Control[] addLabelledTextField(Composite composite, String label,
1873 String key, int textLimit, int indentation, boolean isNumber) {
1874 Label labelControl = new Label(composite, SWT.NONE);
1875 labelControl.setText(label);
1876 GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
1877 gd.horizontalIndent = indentation;
1878 labelControl.setLayoutData(gd);
1879 Text textControl = new Text(composite, SWT.BORDER | SWT.SINGLE);
1880 gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
1881 gd.widthHint = convertWidthInCharsToPixels(textLimit + 1);
1882 textControl.setLayoutData(gd);
1883 textControl.setTextLimit(textLimit);
1884 fTextFields.put(textControl, key);
1886 fNumberFields.add(textControl);
1887 textControl.setText("0");
1888 textControl.addModifyListener(fNumberFieldListener);
1890 textControl.addModifyListener(fTextFieldListener);
1892 return new Control[] { labelControl, textControl };
1895 private String loadPreviewContentFromFile(String filename) {
1897 String separator = System.getProperty("line.separator"); //$NON-NLS-1$
1898 StringBuffer buffer = new StringBuffer(512);
1899 BufferedReader reader = null;
1901 reader = new BufferedReader(new InputStreamReader(getClass()
1902 .getResourceAsStream(filename)));
1903 while ((line = reader.readLine()) != null) {
1904 buffer.append(line);
1905 buffer.append(separator);
1907 } catch (IOException io) {
1908 PHPeclipsePlugin.log(io);
1910 if (reader != null) {
1913 } catch (IOException e) {
1917 return buffer.toString();
1920 private void numberFieldChanged(Text textControl) {
1921 String number = textControl.getText();
1922 IStatus status = validatePositiveNumber(number);
1923 if (!status.matches(IStatus.ERROR))
1924 fOverlayStore.setValue((String) fTextFields.get(textControl),
1926 updateStatus(status);
1929 private IStatus validatePositiveNumber(String number) {
1930 StatusInfo status = new StatusInfo();
1931 if (number.length() == 0) {
1932 status.setError(PreferencesMessages
1933 .getString("JavaEditorPreferencePage.empty_input")); //$NON-NLS-1$
1936 int value = Integer.parseInt(number);
1938 status.setError(PreferencesMessages.getFormattedString(
1939 "JavaEditorPreferencePage.invalid_input", number)); //$NON-NLS-1$
1940 } catch (NumberFormatException e) {
1941 status.setError(PreferencesMessages.getFormattedString(
1942 "JavaEditorPreferencePage.invalid_input", number)); //$NON-NLS-1$
1948 void updateStatus(IStatus status) {
1949 if (!status.matches(IStatus.ERROR)) {
1950 for (int i = 0; i < fNumberFields.size(); i++) {
1951 Text text = (Text) fNumberFields.get(i);
1952 IStatus s = validatePositiveNumber(text.getText());
1953 status = StatusUtil.getMoreSevere(s, status);
1957 // StatusUtil.getMoreSevere(fJavaEditorHoverConfigurationBlock.getStatus(),
1960 // StatusUtil.getMoreSevere(getBrowserLikeLinksKeyModifierStatus(),
1962 setValid(!status.matches(IStatus.ERROR));
1963 StatusUtil.applyToStatusLine(this, status);