Added "Task Tags" functionality (TODO,...)
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / preferences / PHPEditorPreferencePage.java
index 8e77100..902a866 100644 (file)
@@ -1,37 +1,38 @@
 /**********************************************************************
-Copyright (c) 2000, 2002 IBM Corp. 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 implementation
-**********************************************************************/
-
+ Copyright (c) 2000, 2002 IBM Corp. 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 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.TreeSet;
+import net.sourceforge.phpdt.core.JavaCore;
 import net.sourceforge.phpdt.internal.ui.PHPUIMessages;
-import net.sourceforge.phpdt.internal.ui.dialog.StatusInfo;
-import net.sourceforge.phpdt.internal.ui.dialog.StatusUtil;
+import net.sourceforge.phpdt.internal.ui.dialogs.StatusInfo;
+import net.sourceforge.phpdt.internal.ui.dialogs.StatusUtil;
 import net.sourceforge.phpdt.internal.ui.util.TabFolderLayout;
 import net.sourceforge.phpdt.ui.PreferenceConstants;
 import net.sourceforge.phpdt.ui.text.JavaTextTools;
+import net.sourceforge.phpeclipse.IPreferenceConstants;
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
-import net.sourceforge.phpeclipse.phpeditor.PHPEditorEnvironment;
 import net.sourceforge.phpeclipse.phpeditor.PHPSourceViewerConfiguration;
 import net.sourceforge.phpeclipse.preferences.ColorEditor;
-
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Preferences;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferenceConverter;
 import org.eclipse.jface.preference.PreferencePage;
@@ -56,6 +57,7 @@ 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.Display;
@@ -67,1203 +69,1893 @@ 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.texteditor.AbstractTextEditor;
+import org.eclipse.ui.texteditor.AnnotationPreference;
+import org.eclipse.ui.texteditor.MarkerAnnotationPreferences;
 import org.eclipse.ui.texteditor.WorkbenchChainedTextFontFieldEditor;
-
 /*
  * The page for setting the editor options.
  */
-public class PHPEditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-       
-       private static final String BOLD= PreferenceConstants.EDITOR_BOLD_SUFFIX;
-
-       public final OverlayPreferenceStore.OverlayKey[] fKeys= new OverlayPreferenceStore.OverlayKey[] {
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_FOREGROUND_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FOREGROUND_DEFAULT_COLOR),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_BACKGROUND_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, PreferenceConstants.EDITOR_TAB_WIDTH),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_BOLD),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD),
-
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR),
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_BOLD),
-
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR),
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_VARIABLE_BOLD),
-
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR),
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_CONSTANT_BOLD),
-
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PHP_TYPE_COLOR),
-    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PHP_TYPE_BOLD),
-                               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_STRING_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_STRING_BOLD),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_KEYWORD_BOLD),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_LINKS_BOLD),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD),
-                               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_MATCHING_BRACKETS),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CURRENT_LINE_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CURRENT_LINE),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PRINT_MARGIN_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, PreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PRINT_MARGIN),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_FIND_SCOPE_COLOR),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_LINKED_POSITION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_LINK_COLOR),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_PROBLEM_INDICATION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_PROBLEM_INDICATION),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_WARNING_INDICATION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_WARNING_INDICATION),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_TASK_INDICATION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_TASK_INDICATION),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_BOOKMARK_INDICATION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_BOOKMARK_INDICATION),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_UNKNOWN_INDICATION_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_UNKNOWN_INDICATION),
-
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_ERROR_INDICATION_IN_OVERVIEW_RULER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_WARNING_INDICATION_IN_OVERVIEW_RULER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_TASK_INDICATION_IN_OVERVIEW_RULER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_BOOKMARK_INDICATION_IN_OVERVIEW_RULER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_IN_OVERVIEW_RULER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CORRECTION_INDICATION),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_OVERVIEW_RULER),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_LINE_NUMBER_RULER),
-                               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SPACES_FOR_TABS),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_AUTOACTIVATION),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT, PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_AUTOINSERT),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND),            
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_ORDER_PROPOSALS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_CASE_SENSITIVITY),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_ADDIMPORT),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_INSERT_COMPLETION),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SMART_PASTE),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CLOSE_STRINGS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CLOSE_BRACKETS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CLOSE_BRACES),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_CLOSE_JAVADOCS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_WRAP_STRINGS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_FORMAT_JAVADOCS),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, PreferenceConstants.EDITOR_SMART_HOME_END),
-               
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_DEFAULT_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_NONE_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_SHIFT_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_SHIFT_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_ALT_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_ALT_SHIFT_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_CTRL_SHIFT_HOVER),
-               new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, PreferenceConstants.EDITOR_ALT_SHIFT_HOVER),
-       };
-       
-       private final String[][] fSyntaxColorListModel= new String[][] {
-               { PHPUIMessages.getString("PHPEditorPreferencePage.multiLineComment"), PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.singleLineComment"), PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.keywords"), PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR }, //$NON-NLS-1$
-    { PHPUIMessages.getString("PHPEditorPreferencePage.functionNames"), PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR }, //$NON-NLS-1$
-    { PHPUIMessages.getString("PHPEditorPreferencePage.variables"), PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR }, //$NON-NLS-1$
-    { PHPUIMessages.getString("PHPEditorPreferencePage.constants"), PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR }, //$NON-NLS-1$
-    { PHPUIMessages.getString("PHPEditorPreferencePage.types"), PreferenceConstants.EDITOR_PHP_TYPE_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.strings"), PreferenceConstants.EDITOR_STRING_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.others"), PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.phpDocKeywords"), PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.phpDocHtmlTags"), PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.phpDocLinks"), PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR }, //$NON-NLS-1$
-               { PHPUIMessages.getString("PHPEditorPreferencePage.phpDocOthers"), PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR } //$NON-NLS-1$
-       };
-       
-       private final String[][] fAppearanceColorListModel= new String[][] {
-               {PHPUIMessages.getString("PHPEditorPreferencePage.lineNumberForegroundColor"), PreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR}, //$NON-NLS-1$
-               {PHPUIMessages.getString("PHPEditorPreferencePage.matchingBracketsHighlightColor2"), PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR}, //$NON-NLS-1$
-               {PHPUIMessages.getString("PHPEditorPreferencePage.currentLineHighlighColor"), PreferenceConstants.EDITOR_CURRENT_LINE_COLOR}, //$NON-NLS-1$
-               {PHPUIMessages.getString("PHPEditorPreferencePage.printMarginColor2"), PreferenceConstants.EDITOR_PRINT_MARGIN_COLOR}, //$NON-NLS-1$
-               {PHPUIMessages.getString("PHPEditorPreferencePage.findScopeColor2"), PreferenceConstants.EDITOR_FIND_SCOPE_COLOR}, //$NON-NLS-1$
-               {PHPUIMessages.getString("PHPEditorPreferencePage.linkedPositionColor2"), PreferenceConstants.EDITOR_LINKED_POSITION_COLOR}, //$NON-NLS-1$
-       {PHPUIMessages.getString("PHPEditorPreferencePage.linkColor2"), PreferenceConstants.EDITOR_LINK_COLOR}, //$NON-NLS-1$
-       };
-       
-       private final String[][] fProblemIndicationColorListModel= new String[][] {
-               {"Errors", PreferenceConstants.EDITOR_PROBLEM_INDICATION_COLOR, PreferenceConstants.EDITOR_PROBLEM_INDICATION, PreferenceConstants.EDITOR_ERROR_INDICATION_IN_OVERVIEW_RULER },
-               {"Warnings", PreferenceConstants.EDITOR_WARNING_INDICATION_COLOR, PreferenceConstants.EDITOR_WARNING_INDICATION, PreferenceConstants.EDITOR_WARNING_INDICATION_IN_OVERVIEW_RULER },
-               {"Tasks", PreferenceConstants.EDITOR_TASK_INDICATION_COLOR, PreferenceConstants.EDITOR_TASK_INDICATION, PreferenceConstants.EDITOR_TASK_INDICATION_IN_OVERVIEW_RULER },
-               {"Search Results", PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_COLOR, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION, PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_IN_OVERVIEW_RULER },
-               {"Bookmarks", PreferenceConstants.EDITOR_BOOKMARK_INDICATION_COLOR, PreferenceConstants.EDITOR_BOOKMARK_INDICATION, PreferenceConstants.EDITOR_BOOKMARK_INDICATION_IN_OVERVIEW_RULER },
-               {"Others", PreferenceConstants.EDITOR_UNKNOWN_INDICATION_COLOR, PreferenceConstants.EDITOR_UNKNOWN_INDICATION, PreferenceConstants.EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER }
-       };
-       
-       private OverlayPreferenceStore fOverlayStore;
-       private JavaTextTools fJavaTextTools;
-//     private JavaEditorHoverConfigurationBlock fJavaEditorHoverConfigurationBlock;
-       
-       private Map fColorButtons= new HashMap();
-       private SelectionListener fColorButtonListener= new SelectionListener() {
-               public void widgetDefaultSelected(SelectionEvent e) {
-               }
-               public void widgetSelected(SelectionEvent e) {
-                       ColorEditor editor= (ColorEditor) e.widget.getData();
-                       PreferenceConverter.setValue(fOverlayStore, (String) fColorButtons.get(editor), editor.getColorValue());
-               }
-       };
-       
-       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 WorkbenchChainedTextFontFieldEditor fFontEditor;
-       private List fSyntaxColorList;
-       private List fAppearanceColorList;
-       private List fProblemIndicationList;
-       private ColorEditor fSyntaxForegroundColorEditor;
-       private ColorEditor fAppearanceForegroundColorEditor;
-       private ColorEditor fProblemIndicationForegroundColorEditor;
-       private ColorEditor fBackgroundColorEditor;
-       private Button fBackgroundDefaultRadioButton;
-       private Button fBackgroundCustomRadioButton;
-       private Button fBackgroundColorButton;
-       private Button fBoldCheckBox;
-       // private Button fAddJavaDocTagsButton;
-       private Button fGuessMethodArgumentsButton;
-       private SourceViewer fPreviewViewer;
-       private Color fBackgroundColor;
-    private Control fAutoInsertDelayText;
-    private Control fAutoInsertJavaTriggerText;
-    private Control fAutoInsertJavaDocTriggerText;
-       private Button fShowInTextCheckBox;
-       private Button fShowInOverviewRulerCheckBox;
-       
-       public PHPEditorPreferencePage() {
-               setDescription(PHPUIMessages.getString("PHPEditorPreferencePage.description")); //$NON-NLS-1$
-               setPreferenceStore(PHPeclipsePlugin.getDefault().getPreferenceStore());
-               fOverlayStore= new OverlayPreferenceStore(getPreferenceStore(), fKeys);
-       }
-       
-       /*
-        * @see IWorkbenchPreferencePage#init()
-        */     
-       public void init(IWorkbench workbench) {
-       }
-
-       /*
-        * @see PreferencePage#createControl(Composite)
-        */
-       public void createControl(Composite parent) {
-               super.createControl(parent);
-       //      WorkbenchHelp.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));
-       }
-
-       private void handleAppearanceColorListSelection() {     
-               int i= fAppearanceColorList.getSelectionIndex();
-               String key= fAppearanceColorListModel[i][1];
-               RGB rgb= PreferenceConverter.getColor(fOverlayStore, key);
-               fAppearanceForegroundColorEditor.setColorValue(rgb);            
-       }
-       
-       private void handleProblemIndicationColorListSelection() {
-               int i= fProblemIndicationList.getSelectionIndex();
-               
-               String key= fProblemIndicationColorListModel[i][1];
-               RGB rgb= PreferenceConverter.getColor(fOverlayStore, key);
-               fProblemIndicationForegroundColorEditor.setColorValue(rgb);
-               
-               key= fProblemIndicationColorListModel[i][2];
-               fShowInTextCheckBox.setSelection(fOverlayStore.getBoolean(key));
-               
-               key= fProblemIndicationColorListModel[i][3];
-               fShowInOverviewRulerCheckBox.setSelection(fOverlayStore.getBoolean(key));                               
-       }
-       
-       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(PHPUIMessages.getString("PHPEditorPreferencePage.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(PHPUIMessages.getString("PHPEditorPreferencePage.systemDefault")); //$NON-NLS-1$
-               fBackgroundDefaultRadioButton.addSelectionListener(backgroundSelectionListener);
-
-               fBackgroundCustomRadioButton= new Button(backgroundComposite, SWT.RADIO | SWT.LEFT);
-               fBackgroundCustomRadioButton.setText(PHPUIMessages.getString("PHPEditorPreferencePage.custom")); //$NON-NLS-1$
-               fBackgroundCustomRadioButton.addSelectionListener(backgroundSelectionListener);
-
-               fBackgroundColorEditor= new ColorEditor(backgroundComposite);
-               fBackgroundColorButton= fBackgroundColorEditor.getButton();
-
-               Label label= new Label(colorComposite, SWT.LEFT);
-               label.setText(PHPUIMessages.getString("PHPEditorPreferencePage.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(PHPUIMessages.getString("PHPEditorPreferencePage.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(PHPUIMessages.getString("PHPEditorPreferencePage.bold")); //$NON-NLS-1$
-               gd= new GridData(GridData.FILL_HORIZONTAL);
-               gd.horizontalAlignment= GridData.BEGINNING;
-        gd.horizontalSpan= 2;
-               fBoldCheckBox.setLayoutData(gd);
-               
-               label= new Label(colorComposite, SWT.LEFT);
-               label.setText(PHPUIMessages.getString("PHPEditorPreferencePage.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());
-                       }
-               });
-                               
-               return colorComposite;
-       }
-       
-       private Control createPreviewer(Composite parent) {
-               
-               fJavaTextTools= new JavaTextTools(fOverlayStore);
-               
-               fPreviewViewer= new SourceViewer(parent, null, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
-               fPreviewViewer.configure(new PHPSourceViewerConfiguration(fJavaTextTools, null));
-               fPreviewViewer.getTextWidget().setFont(JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT));
-               fPreviewViewer.setEditable(false);
-               
-               initializeViewerColors(fPreviewViewer);
-               
-               String content= loadPreviewContentFromFile("ColorSettingPreviewCode.txt"); //$NON-NLS-1$
-               IDocument document= new Document(content);
-               PHPEditorEnvironment pe;
-               IDocumentPartitioner partitioner= fJavaTextTools.createDocumentPartitioner();
-               partitioner.connect(document);
-               document.setDocumentPartitioner(partitioner);
-               
-               fPreviewViewer.setDocument(document);
-               
-               fOverlayStore.addPropertyChangeListener(new IPropertyChangeListener() {
-                       public void propertyChange(PropertyChangeEvent event) {
-                               String p= event.getProperty();
-                               if (p.equals(PreferenceConstants.EDITOR_BACKGROUND_COLOR) ||
-                                       p.equals(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR))
-                               {
-                                       initializeViewerColors(fPreviewViewer);
-                               }
-                               
-                               fPreviewViewer.invalidateTextPresentation();
-                       }
-               });
-               
-               return fPreviewViewer.getControl();
-       }
-       
-       /**
-        * Initializes the given viewer's colors.
-        * 
-        * @param viewer the viewer to be initialized
-        */
-       private void initializeViewerColors(ISourceViewer viewer) {
-               
-               IPreferenceStore store= fOverlayStore;
-               if (store != null) {
-                       
-                       StyledText styledText= viewer.getTextWidget();
-                                               
-                       // ---------- background color ----------------------
-                       Color color= store.getBoolean(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR)
-                               ? null
-                               : createColor(store, PreferenceConstants.EDITOR_BACKGROUND_COLOR, styledText.getDisplay());
-                       styledText.setBackground(color);
-                               
-                       if (fBackgroundColor != null)
-                               fBackgroundColor.dispose();
-                               
-                       fBackgroundColor= color;
-               }
-       }
-
-       /**
-        * Creates a color from the information stored in the given preference store.
-        * Returns <code>null</code> if there is no such information available.
-        */
-       private Color createColor(IPreferenceStore store, String key, Display display) {
-       
-               RGB rgb= null;          
-               
-               if (store.contains(key)) {
-                       
-                       if (store.isDefault(key))
-                               rgb= PreferenceConverter.getDefaultColor(store, key);
-                       else
-                               rgb= PreferenceConverter.getColor(store, key);
-               
-                       if (rgb != null)
-                               return new Color(display, rgb);
-               }
-               
-               return null;
-       }       
-       
-       // sets enabled flag for a control and all its sub-tree
-       private static void setEnabled(Control control, boolean enable) {
-               control.setEnabled(enable);
-               if (control instanceof Composite) {
-                       Composite composite= (Composite) control;
-                       Control[] children= composite.getChildren();
-                       for (int i= 0; i < children.length; i++)
-                               setEnabled(children[i], enable);
-               }
-       }
-
-       private Control createAppearancePage(Composite parent) {
-
-               Composite appearanceComposite= new Composite(parent, SWT.NONE);
-               GridLayout layout= new GridLayout(); layout.numColumns= 2;
-               appearanceComposite.setLayout(layout);
-
-               String label= PHPUIMessages.getString("PHPEditorPreferencePage.textFont"); //$NON-NLS-1$
-               addTextFontEditor(appearanceComposite, label, AbstractTextEditor.PREFERENCE_FONT);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.displayedTabWidth"); //$NON-NLS-1$
-               addTextField(appearanceComposite, label, PreferenceConstants.EDITOR_TAB_WIDTH, 3, 0, true);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.printMarginColumn"); //$NON-NLS-1$
-               addTextField(appearanceComposite, label, PreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN, 3, 0, true);
-                               
-       //      label= PHPUIMessages.getString("PHPEditorPreferencePage.synchronizeOnCursor"); //$NON-NLS-1$
-       //      addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE, 0);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.showOverviewRuler"); //$NON-NLS-1$
-               addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_OVERVIEW_RULER, 0);
-                               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.showLineNumbers"); //$NON-NLS-1$
-               addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_LINE_NUMBER_RULER, 0);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.highlightMatchingBrackets"); //$NON-NLS-1$
-               addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_MATCHING_BRACKETS, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.highlightCurrentLine"); //$NON-NLS-1$
-               addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_CURRENT_LINE, 0);
-                               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.showPrintMargin"); //$NON-NLS-1$
-               addCheckBox(appearanceComposite, label, PreferenceConstants.EDITOR_PRINT_MARGIN, 0);
-
-
-               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(PHPUIMessages.getString("PHPEditorPreferencePage.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.FILL_BOTH);
-               gd.heightHint= convertHeightInCharsToPixels(5);
-               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(PHPUIMessages.getString("PHPEditorPreferencePage.color")); //$NON-NLS-1$
-               gd= new GridData();
-               gd.horizontalAlignment= GridData.BEGINNING;
-               l.setLayoutData(gd);
-
-               fAppearanceForegroundColorEditor= new ColorEditor(stylesComposite);
-               Button foregroundColorButton= fAppearanceForegroundColorEditor.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, fAppearanceForegroundColorEditor.getColorValue());
-                       }
-               });
-               return appearanceComposite;
-       }
-       
-       
-       private Control createProblemIndicationPage(Composite parent) {
-               Composite composite= new Composite(parent, SWT.NULL);
-               GridLayout layout= new GridLayout(); layout.numColumns= 2;
-               composite.setLayout(layout);
-                               
-               String text= "Analyse &problems while typing";
-               addCheckBox(composite, text, PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS, 0);
-               
-               text= PHPUIMessages.getString("PHPEditorPreferencePage.showQuickFixables"); //$NON-NLS-1$
-               addCheckBox(composite, text, PreferenceConstants.EDITOR_CORRECTION_INDICATION, 0);
-               
-               Label label= new Label(composite, SWT.LEFT );
-               GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-               gd.horizontalSpan= 2;
-               gd.heightHint= convertHeightInCharsToPixels(1) / 2;
-               label.setLayoutData(gd);
-               
-               label= new Label(composite, SWT.LEFT);
-               label.setText("&Marker presentation options:");
-               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);              
-
-               fProblemIndicationList= new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
-               gd= new GridData(GridData.FILL_BOTH);
-               gd.heightHint= convertHeightInCharsToPixels(5);
-               fProblemIndicationList.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("Show in &text");
-               gd= new GridData(GridData.FILL_HORIZONTAL);
-               gd.horizontalAlignment= GridData.BEGINNING;
-        gd.horizontalSpan= 2;
-               fShowInTextCheckBox.setLayoutData(gd);
-               
-               fShowInOverviewRulerCheckBox= new Button(optionsComposite, SWT.CHECK);
-        fShowInOverviewRulerCheckBox.setText("Show in overview &ruler");
-               gd= new GridData(GridData.FILL_HORIZONTAL);
-               gd.horizontalAlignment= GridData.BEGINNING;
-        gd.horizontalSpan= 2;
-               fShowInOverviewRulerCheckBox.setLayoutData(gd);
-               
-               label= new Label(optionsComposite, SWT.LEFT);
-               label.setText("C&olor:");
-               gd= new GridData();
-               gd.horizontalAlignment= GridData.BEGINNING;
-               label.setLayoutData(gd);
-
-               fProblemIndicationForegroundColorEditor= new ColorEditor(optionsComposite);
-               Button foregroundColorButton= fProblemIndicationForegroundColorEditor.getButton();
-               gd= new GridData(GridData.FILL_HORIZONTAL);
-               gd.horizontalAlignment= GridData.BEGINNING;
-               foregroundColorButton.setLayoutData(gd);
-
-               fProblemIndicationList.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       
-                       public void widgetSelected(SelectionEvent e) {
-                               handleProblemIndicationColorListSelection();
-                       }
-               });
-               
-               fShowInTextCheckBox.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       
-                       public void widgetSelected(SelectionEvent e) {
-                               int i= fProblemIndicationList.getSelectionIndex();
-                               String key= fProblemIndicationColorListModel[i][2];
-                               fOverlayStore.setValue(key, fShowInTextCheckBox.getSelection());
-                       }
-               });
-               
-               fShowInOverviewRulerCheckBox.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       
-                       public void widgetSelected(SelectionEvent e) {
-                               int i= fProblemIndicationList.getSelectionIndex();
-                               String key= fProblemIndicationColorListModel[i][3];
-                               fOverlayStore.setValue(key, fShowInOverviewRulerCheckBox.getSelection());
-                       }
-               });
-               
-               foregroundColorButton.addSelectionListener(new SelectionListener() {
-                       public void widgetDefaultSelected(SelectionEvent e) {
-                               // do nothing
-                       }
-                       
-                       public void widgetSelected(SelectionEvent e) {
-                               int i= fProblemIndicationList.getSelectionIndex();
-                               String key= fProblemIndicationColorListModel[i][1];
-                               PreferenceConverter.setValue(fOverlayStore, key, fProblemIndicationForegroundColorEditor.getColorValue());
-                       }
-               });
-               
-               return composite;
-       }
-
-//     private Control createBehaviourPage(Composite parent) {
-//             Composite composite= new Composite(parent, SWT.NULL);
-//             GridLayout layout= new GridLayout(); layout.numColumns= 2;
-//             composite.setLayout(layout);
-//
-//             String label= PHPUIMessages.getString("PHPEditorPreferencePage.wrapStrings"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_WRAP_STRINGS, 1);
-//             
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.smartHomeEnd"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_SMART_HOME_END, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.smartPaste"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_SMART_PASTE, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.insertSpaceForTabs"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_SPACES_FOR_TABS, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.closeStrings"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_STRINGS, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.closeBrackets"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_BRACKETS, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.closeBraces"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_BRACES, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.closePHPDocs"); //$NON-NLS-1$
-//             Button button= addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_JAVADOCS, 1);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.addPHPDocTags"); //$NON-NLS-1$
-//             fAddJavaDocTagsButton= addCheckBox(composite, label, PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS, 1);
-//             createDependency(button, fAddJavaDocTagsButton);
-//
-//             label= PHPUIMessages.getString("PHPEditorPreferencePage.formatPHPDocs"); //$NON-NLS-1$
-//             addCheckBox(composite, label, PreferenceConstants.EDITOR_FORMAT_JAVADOCS, 1);
-//     
-//             return composite;
-//     }
-       
-       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 Control createContentAssistPage(Composite parent) {
-
-               Composite contentAssistComposite= new Composite(parent, SWT.NULL);
-               GridLayout layout= new GridLayout(); layout.numColumns= 2;
-               contentAssistComposite.setLayout(layout);
-
-               String label= PHPUIMessages.getString("PHPEditorPreferencePage.insertSingleProposalsAutomatically"); //$NON-NLS-1$
-               addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOINSERT, 0);               
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.showOnlyProposalsVisibleInTheInvocationContext"); //$NON-NLS-1$
-               addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.presentProposalsInAlphabeticalOrder"); //$NON-NLS-1$
-               addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_ORDER_PROPOSALS, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.automaticallyAddImportInsteadOfQualifiedName"); //$NON-NLS-1$
-               addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_ADDIMPORT, 0);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.insertCompletion"); //$NON-NLS-1$
-               addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_INSERT_COMPLETION, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.fillArgumentNamesOnMethodCompletion"); //$NON-NLS-1$
-               Button button= addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES, 0);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.guessArgumentNamesOnMethodCompletion"); //$NON-NLS-1$
-               fGuessMethodArgumentsButton= addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS, 0);
-               createDependency(button, fGuessMethodArgumentsButton);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.enableAutoActivation"); //$NON-NLS-1$
-               final Button autoactivation= addCheckBox(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.autoActivationDelay"); //$NON-NLS-1$
-               fAutoInsertDelayText= addTextField(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY, 4, 0, true);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.autoActivationTriggersForPHP"); //$NON-NLS-1$
-               fAutoInsertJavaTriggerText= addTextField(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA, 4, 0, false);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.autoActivationTriggersForPHPDoc"); //$NON-NLS-1$
-               fAutoInsertJavaDocTriggerText= addTextField(contentAssistComposite, label, PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC, 4, 0, false);
-                                                               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.backgroundForCompletionProposals"); //$NON-NLS-1$
-               addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.foregroundForCompletionProposals"); //$NON-NLS-1$
-               addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.backgroundForMethodParameters"); //$NON-NLS-1$
-               addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.foregroundForMethodParameters"); //$NON-NLS-1$
-               addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND, 0);
-
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.backgroundForCompletionReplacement"); //$NON-NLS-1$
-               addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND, 0);
-               
-               label= PHPUIMessages.getString("PHPEditorPreferencePage.foregroundForCompletionReplacement"); //$NON-NLS-1$
-               addColorButton(contentAssistComposite, label, PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND, 0);
-               
-               autoactivation.addSelectionListener(new SelectionAdapter(){
-            public void widgetSelected(SelectionEvent e) {
-               updateAutoactivationControls();
+public class PHPEditorPreferencePage extends PreferencePage
+    implements
+      IWorkbenchPreferencePage {
+  private static final String BOLD = PreferenceConstants.EDITOR_BOLD_SUFFIX;
+  private static final String COMPILER_TASK_TAGS = JavaCore.COMPILER_TASK_TAGS;
+//    public final OverlayPreferenceStore.OverlayKey[] fKeys =
+//      new OverlayPreferenceStore.OverlayKey[] {
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_FOREGROUND_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_FOREGROUND_DEFAULT_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_BACKGROUND_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,
+  // PreferenceConstants.EDITOR_TAB_WIDTH),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_JAVA_TAG_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_JAVA_TAG_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_PHP_VARIABLE_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_PHP_CONSTANT_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_PHP_TYPE_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_PHP_TYPE_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_STRING_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_STRING_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_JAVADOC_KEYWORD_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_JAVADOC_LINKS_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_MATCHING_BRACKETS),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_CURRENT_LINE_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_CURRENT_LINE),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_PRINT_MARGIN_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,
+  // PreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_PRINT_MARGIN),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_FIND_SCOPE_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_LINKED_POSITION_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_LINK_COLOR),
+  //// new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_PROBLEM_INDICATION_COLOR),
+  //// new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_PROBLEM_INDICATION),
+  //// new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_WARNING_INDICATION_COLOR),
+  //// new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_WARNING_INDICATION),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_TASK_INDICATION_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_TASK_INDICATION),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_BOOKMARK_INDICATION_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_BOOKMARK_INDICATION),
+  //      new OverlayPreferenceStore.OverlayKey(
+  //        OverlayPreferenceStore.STRING,
+  //        PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_UNKNOWN_INDICATION_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_UNKNOWN_INDICATION),
+  //      new OverlayPreferenceStore.OverlayKey(
+  //        OverlayPreferenceStore.BOOLEAN,
+  //        PreferenceConstants.EDITOR_ERROR_INDICATION_IN_OVERVIEW_RULER),
+  //      new OverlayPreferenceStore.OverlayKey(
+  //        OverlayPreferenceStore.BOOLEAN,
+  //        PreferenceConstants.EDITOR_WARNING_INDICATION_IN_OVERVIEW_RULER),
+  //      new OverlayPreferenceStore.OverlayKey(
+  //        OverlayPreferenceStore.BOOLEAN,
+  //        PreferenceConstants.EDITOR_TASK_INDICATION_IN_OVERVIEW_RULER),
+  //      new OverlayPreferenceStore.OverlayKey(
+  //        OverlayPreferenceStore.BOOLEAN,
+  //        PreferenceConstants.EDITOR_BOOKMARK_INDICATION_IN_OVERVIEW_RULER),
+  //      new OverlayPreferenceStore.OverlayKey(
+  //        OverlayPreferenceStore.BOOLEAN,
+  //        PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_IN_OVERVIEW_RULER),
+  //      new OverlayPreferenceStore.OverlayKey(
+  //        OverlayPreferenceStore.BOOLEAN,
+  //        PreferenceConstants.EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_CORRECTION_INDICATION),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_OVERVIEW_RULER),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_LINE_NUMBER_RULER),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_SPACES_FOR_TABS),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+//   PreferenceConstants.CODEASSIST_AUTOACTIVATION),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,
+//   PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+//   PreferenceConstants.CODEASSIST_AUTOINSERT),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+//   PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+//   PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+//   PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+//   PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+//   PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+//   PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND),
+//        new OverlayPreferenceStore.OverlayKey(
+//          OverlayPreferenceStore.STRING,
+//          PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA),
+//        new OverlayPreferenceStore.OverlayKey(
+//          OverlayPreferenceStore.STRING,
+//          PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC),
+//        new OverlayPreferenceStore.OverlayKey(
+//          OverlayPreferenceStore.STRING,
+//          PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_HTML),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+//   PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+//   PreferenceConstants.CODEASSIST_ORDER_PROPOSALS),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+//   PreferenceConstants.CODEASSIST_CASE_SENSITIVITY),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+//   PreferenceConstants.CODEASSIST_ADDIMPORT),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+//   PreferenceConstants.CODEASSIST_INSERT_COMPLETION),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+//   PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES),
+//        new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+//   PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_SMART_PASTE),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // IPreferenceConstants.PHP_USERDEF_XMLFILE),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_CLOSE_STRINGS_PHP),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_CLOSE_BRACKETS_PHP),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_CLOSE_BRACES),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_CLOSE_JAVADOCS),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_WRAP_STRINGS),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_FORMAT_JAVADOCS),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_SMART_HOME_END),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_CLOSE_STRINGS_HTML),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+  // PreferenceConstants.EDITOR_CLOSE_BRACKETS_HTML),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_DEFAULT_HOVER),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_NONE_HOVER),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_CTRL_HOVER),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_SHIFT_HOVER),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_CTRL_SHIFT_HOVER),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_CTRL_ALT_HOVER),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_CTRL_ALT_SHIFT_HOVER),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_CTRL_SHIFT_HOVER),
+  //      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+  // PreferenceConstants.EDITOR_ALT_SHIFT_HOVER),
+//        };
+  /** The keys of the overlay store. */
+  public final OverlayPreferenceStore.OverlayKey[] fKeys;
+  private final String[][] fSyntaxColorListModel = new String[][]{
+      {PHPUIMessages.getString("PHPEditorPreferencePage.multiLineComment"),
+          PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.singleLineComment"),
+          PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.tags"),
+          PreferenceConstants.EDITOR_JAVA_TAG_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.keywords"),
+          PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.functionNames"),
+          PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.variables"),
+          PreferenceConstants.EDITOR_PHP_VARIABLE_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.constants"),
+          PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.types"),
+          PreferenceConstants.EDITOR_PHP_TYPE_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.strings"),
+          PreferenceConstants.EDITOR_STRING_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.others"),
+          PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.phpDocKeywords"),
+          PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.phpDocHtmlTags"),
+          PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.phpDocLinks"),
+          PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.phpDocOthers"),
+          PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR} //$NON-NLS-1$
+  };
+  private final String[][] fAppearanceColorListModel = new String[][]{
+      {
+          PHPUIMessages
+              .getString("PHPEditorPreferencePage.lineNumberForegroundColor"),
+          PreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR},
+      //$NON-NLS-1$
+      {
+          PHPUIMessages
+              .getString("PHPEditorPreferencePage.matchingBracketsHighlightColor2"),
+          PreferenceConstants.EDITOR_MATCHING_BRACKETS_COLOR},
+      //$NON-NLS-1$
+      {
+          PHPUIMessages
+              .getString("PHPEditorPreferencePage.currentLineHighlighColor"),
+          PreferenceConstants.EDITOR_CURRENT_LINE_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.printMarginColor2"),
+          PreferenceConstants.EDITOR_PRINT_MARGIN_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.findScopeColor2"),
+          PreferenceConstants.EDITOR_FIND_SCOPE_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.linkedPositionColor2"),
+          PreferenceConstants.EDITOR_LINKED_POSITION_COLOR},
+      //$NON-NLS-1$
+      {PHPUIMessages.getString("PHPEditorPreferencePage.linkColor2"),
+          PreferenceConstants.EDITOR_LINK_COLOR}, //$NON-NLS-1$
+  };
+  //  private final String[][] fProblemIndicationColorListModel =
+  //    new String[][] {
+  //      {
+  //        "Errors",
+  //        PreferenceConstants.EDITOR_PROBLEM_INDICATION_COLOR,
+  //        PreferenceConstants.EDITOR_PROBLEM_INDICATION,
+  //        PreferenceConstants.EDITOR_ERROR_INDICATION_IN_OVERVIEW_RULER },
+  //      {
+  //      "Warnings",
+  //        PreferenceConstants.EDITOR_WARNING_INDICATION_COLOR,
+  //        PreferenceConstants.EDITOR_WARNING_INDICATION,
+  //        PreferenceConstants.EDITOR_WARNING_INDICATION_IN_OVERVIEW_RULER },
+  //        {
+  //      "Tasks",
+  //        PreferenceConstants.EDITOR_TASK_INDICATION_COLOR,
+  //        PreferenceConstants.EDITOR_TASK_INDICATION,
+  //        PreferenceConstants.EDITOR_TASK_INDICATION_IN_OVERVIEW_RULER },
+  //        {
+  //      "Search Results",
+  //        PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_COLOR,
+  //        PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION,
+  //        PreferenceConstants.EDITOR_SEARCH_RESULT_INDICATION_IN_OVERVIEW_RULER },
+  //        {
+  //      "Bookmarks",
+  //        PreferenceConstants.EDITOR_BOOKMARK_INDICATION_COLOR,
+  //        PreferenceConstants.EDITOR_BOOKMARK_INDICATION,
+  //        PreferenceConstants.EDITOR_BOOKMARK_INDICATION_IN_OVERVIEW_RULER },
+  //        {
+  //      "Others",
+  //        PreferenceConstants.EDITOR_UNKNOWN_INDICATION_COLOR,
+  //        PreferenceConstants.EDITOR_UNKNOWN_INDICATION,
+  //        PreferenceConstants.EDITOR_UNKNOWN_INDICATION_IN_OVERVIEW_RULER }
+  //  };
+  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 Map fColorButtons = new HashMap();
+  private SelectionListener fColorButtonListener = new SelectionListener() {
+    public void widgetDefaultSelected(SelectionEvent e) {
+    }
+    public void widgetSelected(SelectionEvent e) {
+      ColorEditor editor = (ColorEditor) e.widget.getData();
+      PreferenceConverter.setValue(fOverlayStore, (String) fColorButtons
+          .get(editor), editor.getColorValue());
+    }
+  };
+  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 WorkbenchChainedTextFontFieldEditor fFontEditor;
+  private List fSyntaxColorList;
+  private List fAppearanceColorList;
+  private List fAnnotationList;
+  private ColorEditor fSyntaxForegroundColorEditor;
+  private ColorEditor fAppearanceForegroundColorEditor;
+  private ColorEditor fAnnotationForegroundColorEditor;
+  private ColorEditor fBackgroundColorEditor;
+  private Button fBackgroundDefaultRadioButton;
+  private Button fBackgroundCustomRadioButton;
+  private Button fBackgroundColorButton;
+  private Button fBoldCheckBox;
+  //private Button fAddJavaDocTagsButton;
+  // private Button fGuessMethodArgumentsButton;
+  private SourceViewer fPreviewViewer;
+  private Color fBackgroundColor;
+  private Control fAutoInsertDelayText;
+  private Control fAutoInsertJavaTriggerText;
+  private Control fAutoInsertJavaDocTriggerText;
+  private Control fAutoInsertHTMLTriggerText;
+  private Button fShowInTextCheckBox;
+  private Button fShowInOverviewRulerCheckBox;
+  private Combo fDecorationStyleCombo;
+  private Button fHighlightInTextCheckBox;
+  private Button fShowInVerticalRulerCheckBox;
+  // private FileFieldEditor fUserDefinedPHPSyntaxFileFFE;
+  public PHPEditorPreferencePage() {
+    setDescription(PHPUIMessages
+        .getString("PHPEditorPreferencePage.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_PHP_FUNCTIONNAME_COLOR));
+    overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_PHP_FUNCTIONNAME_BOLD));
+    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.STRING,
+        PreferenceConstants.EDITOR_PHP_CONSTANT_COLOR));
+    overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_PHP_CONSTANT_BOLD));
+    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.STRING,
+            IPreferenceConstants.PHP_USERDEF_XMLFILE));
+    overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_CLOSE_STRINGS_PHP));
+    overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_CLOSE_BRACKETS_PHP));
+    overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_CLOSE_STRINGS_HTML));
+    overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_CLOSE_BRACKETS_HTML));
+    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.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.STRING,
+        PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR));
+    overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD));
+    overlayKeys
+        .add(new OverlayPreferenceStore.OverlayKey(
+            OverlayPreferenceStore.STRING,
+            PreferenceConstants.EDITOR_STRING_COLOR));
+    overlayKeys
+        .add(new OverlayPreferenceStore.OverlayKey(
+            OverlayPreferenceStore.BOOLEAN,
+            PreferenceConstants.EDITOR_STRING_BOLD));
+    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.STRING,
+    // PreferenceConstants.EDITOR_TASK_TAG_COLOR));
+    // overlayKeys.add(new
+    // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+    // PreferenceConstants.EDITOR_TASK_TAG_BOLD));
+    // 
+    // overlayKeys.add(new
+    // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+    // 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_JAVA_OPERATOR_COLOR));
+    // overlayKeys.add(new
+    // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+    // PreferenceConstants.EDITOR_JAVA_OPERATOR_BOLD));
+    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.STRING,
+        PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR));
+    overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD));
+    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.STRING,
+        PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR));
+    overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD));
+    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,
+    // ExtendedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR));
+    // overlayKeys.add(new
+    // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+    // ExtendedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE));
+    // 
+    // overlayKeys.add(new
+    // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+    // ExtendedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR));
+    // overlayKeys.add(new
+    // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.INT,
+    // ExtendedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN));
+    // overlayKeys.add(new
+    // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+    // ExtendedTextEditorPreferenceConstants.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,
+    // ExtendedTextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER));
+    // overlayKeys.add(new
+    // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+    // ExtendedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR));
+    // overlayKeys.add(new
+    // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+    // ExtendedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_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));
+    // overlayKeys.add(new
+    // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+    // PreferenceConstants.EDITOR_CLOSE_BRACKETS));
+    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_STRINGS));
+    // overlayKeys.add(new
+    // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+    // PreferenceConstants.EDITOR_ESCAPE_STRINGS));
+    overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
+        OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS));
+    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);
+    // WorkbenchHelp.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));
+  }
+  private void handleAppearanceColorListSelection() {
+    int i = fAppearanceColorList.getSelectionIndex();
+    String key = fAppearanceColorListModel[i][1];
+    RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
+    fAppearanceForegroundColorEditor.setColorValue(rgb);
+  }
+  //  private void handleProblemIndicationColorListSelection() {
+  //    int i = fProblemIndicationList.getSelectionIndex();
+  //
+  //    String key = fProblemIndicationColorListModel[i][1];
+  //    RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
+  //    fProblemIndicationForegroundColorEditor.setColorValue(rgb);
+  //
+  //    key = fProblemIndicationColorListModel[i][2];
+  //    fShowInTextCheckBox.setSelection(fOverlayStore.getBoolean(key));
+  //
+  //    key = fProblemIndicationColorListModel[i][3];
+  //    fShowInOverviewRulerCheckBox.setSelection(fOverlayStore.getBoolean(key));
+  //  }
+  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(PHPUIMessages
+        .getString("PHPEditorPreferencePage.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(PHPUIMessages
+        .getString("PHPEditorPreferencePage.systemDefault")); //$NON-NLS-1$
+    fBackgroundDefaultRadioButton
+        .addSelectionListener(backgroundSelectionListener);
+    fBackgroundCustomRadioButton = new Button(backgroundComposite, SWT.RADIO
+        | SWT.LEFT);
+    fBackgroundCustomRadioButton.setText(PHPUIMessages
+        .getString("PHPEditorPreferencePage.custom")); //$NON-NLS-1$
+    fBackgroundCustomRadioButton
+        .addSelectionListener(backgroundSelectionListener);
+    fBackgroundColorEditor = new ColorEditor(backgroundComposite);
+    fBackgroundColorButton = fBackgroundColorEditor.getButton();
+    //    fUserDefinedPHPSyntaxFileFFE =
+    //      new FileFieldEditor(
+    //        IPreferenceConstants.PHP_USERDEF_XMLFILE,
+    //        PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.syntaxdialog"),
+    //        colorComposite);
+    //    fUserDefinedPHPSyntaxFileFFE.setPreferencePage(this);
+    //    fUserDefinedPHPSyntaxFileFFE.setPreferenceStore(getPreferenceStore());
+    //    fUserDefinedPHPSyntaxFileFFE.load();
+    Label label = new Label(colorComposite, SWT.LEFT);
+    label
+        .setText(PHPUIMessages.getString("PHPEditorPreferencePage.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(PHPUIMessages.getString("PHPEditorPreferencePage.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(PHPUIMessages
+        .getString("PHPEditorPreferencePage.bold")); //$NON-NLS-1$
+    gd = new GridData(GridData.FILL_HORIZONTAL);
+    gd.horizontalAlignment = GridData.BEGINNING;
+    gd.horizontalSpan = 2;
+    fBoldCheckBox.setLayoutData(gd);
+    label = new Label(colorComposite, SWT.LEFT);
+    label.setText(PHPUIMessages.getString("PHPEditorPreferencePage.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());
+      }
+    });
+    return colorComposite;
+  }
+  private Control createPreviewer(Composite parent) {
+    Preferences coreStore = createTemporaryCorePreferenceStore();
+    fJavaTextTools = new JavaTextTools(fOverlayStore, coreStore, false);
+    fPreviewViewer = new SourceViewer(parent, null, SWT.V_SCROLL | SWT.H_SCROLL
+        | SWT.BORDER);
+    fPreviewViewer.configure(new PHPSourceViewerConfiguration(fJavaTextTools,
+        null));
+    fPreviewViewer.getTextWidget().setFont(
+        JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT));
+    fPreviewViewer.setEditable(false);
+    initializeViewerColors(fPreviewViewer);
+    String content = loadPreviewContentFromFile("ColorSettingPreviewCode.txt"); //$NON-NLS-1$
+    IDocument document = new Document(content);
+    //  PHPEditorEnvironment pe;
+    IDocumentPartitioner partitioner = fJavaTextTools
+        .createDocumentPartitioner();
+    partitioner.connect(document);
+    document.setDocumentPartitioner(partitioner);
+    fPreviewViewer.setDocument(document);
+    fOverlayStore.addPropertyChangeListener(new IPropertyChangeListener() {
+      public void propertyChange(PropertyChangeEvent event) {
+        String p = event.getProperty();
+        if (p.equals(PreferenceConstants.EDITOR_BACKGROUND_COLOR)
+            || p.equals(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR)) {
+          initializeViewerColors(fPreviewViewer);
+        }
+        fPreviewViewer.invalidateTextPresentation();
+      }
+    });
+    return fPreviewViewer.getControl();
+  }
+  private Preferences createTemporaryCorePreferenceStore() {
+    Preferences result = new Preferences();
+    result.setValue(COMPILER_TASK_TAGS, "TASK"); //$NON-NLS-1$
+    return result;
+  }
+  /**
+   * Initializes the given viewer's colors.
+   * 
+   * @param viewer
+   *            the viewer to be initialized
+   */
+  private void initializeViewerColors(ISourceViewer viewer) {
+    IPreferenceStore store = fOverlayStore;
+    if (store != null) {
+      StyledText styledText = viewer.getTextWidget();
+      // ---------- background color ----------------------
+      Color color = store
+          .getBoolean(PreferenceConstants.EDITOR_BACKGROUND_DEFAULT_COLOR)
+          ? null
+          : createColor(store, PreferenceConstants.EDITOR_BACKGROUND_COLOR,
+              styledText.getDisplay());
+      styledText.setBackground(color);
+      if (fBackgroundColor != null)
+        fBackgroundColor.dispose();
+      fBackgroundColor = color;
+    }
+  }
+  /**
+   * Creates a color from the information stored in the given preference store.
+   * Returns <code>null</code> if there is no such information available.
+   */
+  private Color createColor(IPreferenceStore store, String key, Display display) {
+    RGB rgb = null;
+    if (store.contains(key)) {
+      if (store.isDefault(key))
+        rgb = PreferenceConverter.getDefaultColor(store, key);
+      else
+        rgb = PreferenceConverter.getColor(store, key);
+      if (rgb != null)
+        return new Color(display, rgb);
+    }
+    return null;
+  }
+  // sets enabled flag for a control and all its sub-tree
+  private static void setEnabled(Control control, boolean enable) {
+    control.setEnabled(enable);
+    if (control instanceof Composite) {
+      Composite composite = (Composite) control;
+      Control[] children = composite.getChildren();
+      for (int i = 0; i < children.length; i++)
+        setEnabled(children[i], enable);
+    }
+  }
+  private Control createAppearancePage(Composite parent) {
+    Composite appearanceComposite = new Composite(parent, SWT.NONE);
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 2;
+    appearanceComposite.setLayout(layout);
+    String label = PHPUIMessages.getString("PHPEditorPreferencePage.textFont"); //$NON-NLS-1$
+    addTextFontEditor(appearanceComposite, label, JFaceResources.TEXT_FONT);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.displayedTabWidth"); //$NON-NLS-1$
+    addTextField(appearanceComposite, label,
+        PreferenceConstants.EDITOR_TAB_WIDTH, 3, 0, true);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.printMarginColumn"); //$NON-NLS-1$
+    addTextField(appearanceComposite, label,
+        PreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN, 3, 0, true);
+    // label=
+    // PHPUIMessages.getString("PHPEditorPreferencePage.synchronizeOnCursor");
+    // //$NON-NLS-1$
+    // addCheckBox(appearanceComposite, label,
+    // PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE, 0);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.showOverviewRuler"); //$NON-NLS-1$
+    addCheckBox(appearanceComposite, label,
+        PreferenceConstants.EDITOR_OVERVIEW_RULER, 0);
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.showLineNumbers"); //$NON-NLS-1$
+    addCheckBox(appearanceComposite, label,
+        PreferenceConstants.EDITOR_LINE_NUMBER_RULER, 0);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.highlightMatchingBrackets"); //$NON-NLS-1$
+    addCheckBox(appearanceComposite, label,
+        PreferenceConstants.EDITOR_MATCHING_BRACKETS, 0);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.highlightCurrentLine"); //$NON-NLS-1$
+    addCheckBox(appearanceComposite, label,
+        PreferenceConstants.EDITOR_CURRENT_LINE, 0);
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.showPrintMargin"); //$NON-NLS-1$
+    addCheckBox(appearanceComposite, label,
+        PreferenceConstants.EDITOR_PRINT_MARGIN, 0);
+    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(PHPUIMessages
+        .getString("PHPEditorPreferencePage.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.FILL_BOTH);
+    gd.heightHint = convertHeightInCharsToPixels(5);
+    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(PHPUIMessages.getString("PHPEditorPreferencePage.color")); //$NON-NLS-1$
+    gd = new GridData();
+    gd.horizontalAlignment = GridData.BEGINNING;
+    l.setLayoutData(gd);
+    fAppearanceForegroundColorEditor = new ColorEditor(stylesComposite);
+    Button foregroundColorButton = fAppearanceForegroundColorEditor.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,
+            fAppearanceForegroundColorEditor.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 contentAssistComposite;
-       }
-
-       /*
-        * @see PreferencePage#createContents(Composite)
-        */
-       protected Control createContents(Composite parent) {
-               
-               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(PHPUIMessages.getString("PHPEditorPreferencePage.general")); //$NON-NLS-1$
-               item.setControl(createAppearancePage(folder));
-               
-               item= new TabItem(folder, SWT.NONE);
-               item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.colors")); //$NON-NLS-1$
-               item.setControl(createSyntaxPage(folder));
-               
-               item= new TabItem(folder, SWT.NONE);
-               item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.codeAssist")); //$NON-NLS-1$
-               item.setControl(createContentAssistPage(folder));
-
-               item= new TabItem(folder, SWT.NONE);
-               item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.problemIndicationTab.title")); //$NON-NLS-1$
-               item.setControl(createProblemIndicationPage(folder));
-
-//             item= new TabItem(folder, SWT.NONE);
-//             item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.behaviourTab.title")); //$NON-NLS-1$
-//             item.setControl(createBehaviourPage(folder));
-
-//             item= new TabItem(folder, SWT.NONE);
-//             item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.hoverTab.title")); //$NON-NLS-1$
-//             fJavaEditorHoverConfigurationBlock= new JavaEditorHoverConfigurationBlock(fOverlayStore);
-//             item.setControl(fJavaEditorHoverConfigurationBlock.createControl(folder));
-               
-               initialize();
-               
-               return folder;
-       }
-       
-       private void initialize() {
-               
-               fFontEditor.setPreferenceStore(getPreferenceStore());
-               fFontEditor.setPreferencePage(this);
-               fFontEditor.load();
-               
-               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 < fProblemIndicationColorListModel.length; i++)
-                       fProblemIndicationList.add(fProblemIndicationColorListModel[i][0]);
-                       
-               fProblemIndicationList.getDisplay().asyncExec(new Runnable() {
-                       public void run() {
-                               if (fProblemIndicationList != null && !fProblemIndicationList.isDisposed()) {
-                                       fProblemIndicationList.select(0);
-                                       handleProblemIndicationColorListSelection();
-                               }
-                       }
-               });
-       }
-       
-       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);
-
-               boolean fillMethodArguments= fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES);
-               fGuessMethodArgumentsButton.setEnabled(fillMethodArguments);
-               
+          }
+        }
+      }
+    });
+    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 createBehaviourPage(Composite parent) {
+    Composite composite = new Composite(parent, SWT.NULL);
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 2;
+    composite.setLayout(layout);
+    String label;
+    //                 String label=
+    // PHPUIMessages.getString("PHPEditorPreferencePage.wrapStrings");
+    // //$NON-NLS-1$
+    //                 addCheckBox(composite, label, PreferenceConstants.EDITOR_WRAP_STRINGS,
+    // 1);
+    //                 label= PHPUIMessages.getString("PHPEditorPreferencePage.smartHomeEnd");
+    // //$NON-NLS-1$
+    //                 addCheckBox(composite, label, PreferenceConstants.EDITOR_SMART_HOME_END,
+    // 1);
+    //  
+    //                 label= PHPUIMessages.getString("PHPEditorPreferencePage.smartPaste");
+    // //$NON-NLS-1$
+    //                 addCheckBox(composite, label, PreferenceConstants.EDITOR_SMART_PASTE,
+    // 1);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.insertSpaceForTabs"); //$NON-NLS-1$
+    addCheckBox(composite, label, PreferenceConstants.EDITOR_SPACES_FOR_TABS, 1);
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.closeStringsPHP"); //$NON-NLS-1$
+    addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_STRINGS_PHP,
+        1);
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.closeBracketsPHP"); //$NON-NLS-1$
+    addCheckBox(composite, label,
+        PreferenceConstants.EDITOR_CLOSE_BRACKETS_PHP, 1);
+    //                 label= PHPUIMessages.getString("PHPEditorPreferencePage.closeBraces");
+    // //$NON-NLS-1$
+    //                 addCheckBox(composite, label, PreferenceConstants.EDITOR_CLOSE_BRACES,
+    // 1);
+    //  
+    //                 label= PHPUIMessages.getString("PHPEditorPreferencePage.closePHPDocs");
+    // //$NON-NLS-1$
+    //                 Button button= addCheckBox(composite, label,
+    // PreferenceConstants.EDITOR_CLOSE_JAVADOCS, 1);
+    //  
+    //                 label= PHPUIMessages.getString("PHPEditorPreferencePage.addPHPDocTags");
+    // //$NON-NLS-1$
+    //                 fAddJavaDocTagsButton= addCheckBox(composite, label,
+    // PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS, 1);
+    //                 createDependency(button, fAddJavaDocTagsButton);
+    //                 label= PHPUIMessages.getString("PHPEditorPreferencePage.formatPHPDocs");
+    // //$NON-NLS-1$
+    //                 addCheckBox(composite, label,
+    // PreferenceConstants.EDITOR_FORMAT_JAVADOCS, 1);
+    //         
+    label = PHPUIMessages.getString("PHPEditorPreferencePage.closeStringsHTML"); //$NON-NLS-1$
+    addCheckBox(composite, label,
+        PreferenceConstants.EDITOR_CLOSE_STRINGS_HTML, 1);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.closeBracketsHTML"); //$NON-NLS-1$
+    addCheckBox(composite, label,
+        PreferenceConstants.EDITOR_CLOSE_BRACKETS_HTML, 1);
+    return composite;
+  }
+  
+  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 Control createContentAssistPage(Composite parent) {
+    Composite contentAssistComposite = new Composite(parent, SWT.NULL);
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 2;
+    contentAssistComposite.setLayout(layout);
+    String label;
+    //    String label =
+    // PHPUIMessages.getString("PHPEditorPreferencePage.insertSingleProposalsAutomatically");
+    // //$NON-NLS-1$
+    //    addCheckBox(contentAssistComposite, label,
+    // PreferenceConstants.CODEASSIST_AUTOINSERT, 0);
+    //
+    //    label =
+    // PHPUIMessages.getString("PHPEditorPreferencePage.showOnlyProposalsVisibleInTheInvocationContext");
+    // //$NON-NLS-1$
+    //    addCheckBox(contentAssistComposite, label,
+    // PreferenceConstants.CODEASSIST_SHOW_VISIBLE_PROPOSALS, 0);
+    //
+    //    label =
+    // PHPUIMessages.getString("PHPEditorPreferencePage.presentProposalsInAlphabeticalOrder");
+    // //$NON-NLS-1$
+    //    addCheckBox(contentAssistComposite, label,
+    // PreferenceConstants.CODEASSIST_ORDER_PROPOSALS, 0);
+    //
+    //    label =
+    // PHPUIMessages.getString("PHPEditorPreferencePage.automaticallyAddImportInsteadOfQualifiedName");
+    // //$NON-NLS-1$
+    //    addCheckBox(contentAssistComposite, label,
+    // PreferenceConstants.CODEASSIST_ADDIMPORT, 0);
+    //
+    //    label =
+    // PHPUIMessages.getString("PHPEditorPreferencePage.insertCompletion");
+    // //$NON-NLS-1$
+    //    addCheckBox(contentAssistComposite, label,
+    // PreferenceConstants.CODEASSIST_INSERT_COMPLETION, 0);
+    //
+    //    label =
+    // PHPUIMessages.getString("PHPEditorPreferencePage.fillArgumentNamesOnMethodCompletion");
+    // //$NON-NLS-1$
+    //    Button button = addCheckBox(contentAssistComposite, label,
+    // PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES, 0);
+    //
+    //    label =
+    // PHPUIMessages.getString("PHPEditorPreferencePage.guessArgumentNamesOnMethodCompletion");
+    // //$NON-NLS-1$
+    //    fGuessMethodArgumentsButton =
+    //      addCheckBox(contentAssistComposite, label,
+    // PreferenceConstants.CODEASSIST_GUESS_METHOD_ARGUMENTS, 0);
+    //    createDependency(button, fGuessMethodArgumentsButton);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.enableAutoActivation"); //$NON-NLS-1$
+    final Button autoactivation = addCheckBox(contentAssistComposite, label,
+        PreferenceConstants.CODEASSIST_AUTOACTIVATION, 0);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.autoActivationDelay"); //$NON-NLS-1$
+    fAutoInsertDelayText = addTextField(contentAssistComposite, label,
+        PreferenceConstants.CODEASSIST_AUTOACTIVATION_DELAY, 4, 0, true);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.autoActivationTriggersForPHP"); //$NON-NLS-1$
+    fAutoInsertJavaTriggerText = addTextField(contentAssistComposite, label,
+        PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVA, 4, 0,
+        false);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.autoActivationTriggersForPHPDoc"); //$NON-NLS-1$
+    fAutoInsertJavaDocTriggerText = addTextField(contentAssistComposite, label,
+        PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_JAVADOC, 4, 0,
+        false);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.autoActivationTriggersForHTML"); //$NON-NLS-1$
+    fAutoInsertHTMLTriggerText = addTextField(contentAssistComposite, label,
+        PreferenceConstants.CODEASSIST_AUTOACTIVATION_TRIGGERS_HTML, 4, 0,
+        false);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.backgroundForCompletionProposals"); //$NON-NLS-1$
+    addColorButton(contentAssistComposite, label,
+        PreferenceConstants.CODEASSIST_PROPOSALS_BACKGROUND, 0);
+    label = PHPUIMessages
+        .getString("PHPEditorPreferencePage.foregroundForCompletionProposals"); //$NON-NLS-1$
+    addColorButton(contentAssistComposite, label,
+        PreferenceConstants.CODEASSIST_PROPOSALS_FOREGROUND, 0);
+    //    label =
+    // PHPUIMessages.getString("PHPEditorPreferencePage.backgroundForMethodParameters");
+    // //$NON-NLS-1$
+    //    addColorButton(contentAssistComposite, label,
+    // PreferenceConstants.CODEASSIST_PARAMETERS_BACKGROUND, 0);
+    //
+    //    label =
+    // PHPUIMessages.getString("PHPEditorPreferencePage.foregroundForMethodParameters");
+    // //$NON-NLS-1$
+    //    addColorButton(contentAssistComposite, label,
+    // PreferenceConstants.CODEASSIST_PARAMETERS_FOREGROUND, 0);
+    //    label =
+    // PHPUIMessages.getString("PHPEditorPreferencePage.backgroundForCompletionReplacement");
+    // //$NON-NLS-1$
+    //    addColorButton(contentAssistComposite, label,
+    // PreferenceConstants.CODEASSIST_REPLACEMENT_BACKGROUND, 0);
+    //
+    //    label =
+    // PHPUIMessages.getString("PHPEditorPreferencePage.foregroundForCompletionReplacement");
+    // //$NON-NLS-1$
+    //    addColorButton(contentAssistComposite, label,
+    // PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND, 0);
+    autoactivation.addSelectionListener(new SelectionAdapter() {
+      public void widgetSelected(SelectionEvent e) {
         updateAutoactivationControls();
-        
-       //      fJavaEditorHoverConfigurationBlock.initializeFields();
-       }
-       
-    private void updateAutoactivationControls() {
-        boolean autoactivation= fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_AUTOACTIVATION);
-        fAutoInsertDelayText.setEnabled(autoactivation);
-        fAutoInsertJavaTriggerText.setEnabled(autoactivation);
-        fAutoInsertJavaDocTriggerText.setEnabled(autoactivation);
+      }
+    });
+    return contentAssistComposite;
+  }
+  /*
+   * @see PreferencePage#createContents(Composite)
+   */
+  protected Control createContents(Composite parent) {
+    initializeDefaultColors();
+    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(PHPUIMessages.getString("PHPEditorPreferencePage.general")); //$NON-NLS-1$
+    item.setControl(createAppearancePage(folder));
+    item = new TabItem(folder, SWT.NONE);
+    item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.colors")); //$NON-NLS-1$
+    item.setControl(createSyntaxPage(folder));
+    item = new TabItem(folder, SWT.NONE);
+    item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.codeAssist")); //$NON-NLS-1$
+    item.setControl(createContentAssistPage(folder));
+    item = new TabItem(folder, SWT.NONE);
+    item.setText(PHPUIMessages
+        .getString("PHPEditorPreferencePage.annotationsTab.title")); //$NON-NLS-1$
+    item.setControl(createAnnotationsPage(folder));
+    item = new TabItem(folder, SWT.NONE);
+    item.setText(PHPUIMessages
+        .getString("PHPEditorPreferencePage.behaviourTab.title")); //$NON-NLS-1$
+    item.setControl(createBehaviourPage(folder));
+               item= new TabItem(folder, SWT.NONE);
+               item.setText(PHPUIMessages.getString("PHPEditorPreferencePage.hoverTab.title"));
+     //$NON-NLS-1$
+//             fJavaEditorHoverConfigurationBlock= new
+//     JavaEditorHoverConfigurationBlock(fOverlayStore);
+//             item.setControl(fJavaEditorHoverConfigurationBlock.createControl(folder));
+    initialize();
+    return folder;
+  }
+  private void initialize() {
+    fFontEditor.setPreferenceStore(getPreferenceStore());
+    fFontEditor.setPreferencePage(this);
+    fFontEditor.load();
+    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();
+//                     }
+//             }
+//     });
+  }
+  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);
     }
-       
-       /*
-        * @see PreferencePage#performOk()
-        */
-       public boolean performOk() {
-               fFontEditor.store();
-       //      fJavaEditorHoverConfigurationBlock.performOk();
-               fOverlayStore.propagate();
-               PHPeclipsePlugin.getDefault().savePluginPreferences();
-               return true;
-       }
-       
-       /*
-        * @see PreferencePage#performDefaults()
-        */
-       protected void performDefaults() {
-               
-               fFontEditor.loadDefault();
-               
-               fOverlayStore.loadDefaults();
-               initializeFields();
-
-               handleSyntaxColorListSelection();
-               handleAppearanceColorListSelection();
-               handleProblemIndicationColorListSelection();
-               super.performDefaults();
-               
-               fPreviewViewer.invalidateTextPresentation();
-       }
-       
-       /*
-        * @see DialogPage#dispose()
-        */
-       public void dispose() {
-               
-               if (fJavaTextTools != null) {
-                       fJavaTextTools= null;
-               }
-               
-               fFontEditor.setPreferencePage(null);
-               fFontEditor.setPreferenceStore(null);
-               
-               if (fOverlayStore != null) {
-                       fOverlayStore.stop();
-                       fOverlayStore= null;
-               }
-               
-               super.dispose();
-       }
-       
-       private Control addColorButton(Composite composite, String label, String key, int indentation) {
-
-               Label labelControl= new Label(composite, SWT.NONE);
-               labelControl.setText(label);
-               
-               GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-               gd.horizontalIndent= indentation;
-               labelControl.setLayoutData(gd);
-               
-               ColorEditor editor= new ColorEditor(composite);
-               Button button= editor.getButton();
-               button.setData(editor);
-               
-               gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-               button.setLayoutData(gd);
-               button.addSelectionListener(fColorButtonListener);
-               
-               fColorButtons.put(editor, key);
-               
-               return composite;
-       }
-       
-       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 Control addTextField(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.addModifyListener(fNumberFieldListener);
-               } else {
-                       textControl.addModifyListener(fTextFieldListener);
-               }
-                       
-               return textControl;
-       }
-       
-       private void addTextFontEditor(Composite parent, String label, String key) {
-               
-               Composite editorComposite= new Composite(parent, SWT.NONE);
-               GridLayout layout= new GridLayout();
-               layout.numColumns= 3;
-               editorComposite.setLayout(layout);              
-               fFontEditor= new WorkbenchChainedTextFontFieldEditor(key, label, editorComposite);
-               fFontEditor.setChangeButtonText(PHPUIMessages.getString("PHPEditorPreferencePage.change")); //$NON-NLS-1$
-                               
-               GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-               gd.horizontalSpan= 2;
-               editorComposite.setLayoutData(gd);
-       }
-       
-       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) {}
-                       }
+    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);
+    //    boolean fillMethodArguments =
+    // fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES);
+    //    fGuessMethodArgumentsButton.setEnabled(fillMethodArguments);
+    updateAutoactivationControls();
+    // fJavaEditorHoverConfigurationBlock.initializeFields();
+  }
+  
+  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);
                }
-               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(PHPUIMessages.getString("PHPEditorPreferencePage.empty_input")); //$NON-NLS-1$
-               } else {
-                       try {
-                               int value= Integer.parseInt(number);
-                               if (value < 0)
-                                       status.setError(PHPUIMessages.getFormattedString("PHPEditorPreferencePage.invalid_input", number)); //$NON-NLS-1$
-                       } catch (NumberFormatException e) {
-                               status.setError(PHPUIMessages.getFormattedString("PHPEditorPreferencePage.invalid_input", number)); //$NON-NLS-1$
-                       }
+               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);
                }
-               return status;
-       }
-       
-       private 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);
-                       }
-               }       
-               setValid(!status.matches(IStatus.ERROR));
-               StatusUtil.applyToStatusLine(this, status);
-       }
-
-       /**
-        * @deprecated Inline to avoid reference to preference page
-        */
-       public static boolean indicateQuixFixableProblems() {
-               return PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_CORRECTION_INDICATION);
-       }
-
-       /**
-        * @deprecated Inline to avoid reference to preference page
-        */     
-//     static public boolean synchronizeOutlineOnCursorMove() {
-//             return PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE);
-//     }
-
+  }
+  
+  private void updateAutoactivationControls() {
+    boolean autoactivation = fOverlayStore
+        .getBoolean(PreferenceConstants.CODEASSIST_AUTOACTIVATION);
+    fAutoInsertDelayText.setEnabled(autoactivation);
+    fAutoInsertJavaTriggerText.setEnabled(autoactivation);
+    fAutoInsertJavaDocTriggerText.setEnabled(autoactivation);
+    fAutoInsertHTMLTriggerText.setEnabled(autoactivation);
+  }
+  /*
+   * @see PreferencePage#performOk()
+   */
+  public boolean performOk() {
+    fFontEditor.store();
+    // fJavaEditorHoverConfigurationBlock.performOk();
+    fOverlayStore.propagate();
+    // fUserDefinedPHPSyntaxFileFFE.store();
+    PHPeclipsePlugin.getDefault().savePluginPreferences();
+    return true;
+  }
+  /*
+   * @see PreferencePage#performDefaults()
+   */
+  protected void performDefaults() {
+    fFontEditor.loadDefault();
+    fOverlayStore.loadDefaults();
+    initializeFields();
+    //  fUserDefinedPHPSyntaxFileFFE.loadDefault();
+    handleSyntaxColorListSelection();
+    handleAppearanceColorListSelection();
+    handleAnnotationListSelection();
+    // handleContentAssistColorListSelection();
+    super.performDefaults();
+    fPreviewViewer.invalidateTextPresentation();
+  }
+  /*
+   * @see DialogPage#dispose()
+   */
+  public void dispose() {
+    if (fJavaTextTools != null) {
+      fJavaTextTools = null;
+    }
+    fFontEditor.setPreferencePage(null);
+    fFontEditor.setPreferenceStore(null);
+    if (fOverlayStore != null) {
+      fOverlayStore.stop();
+      fOverlayStore = null;
+    }
+    super.dispose();
+  }
+  private Control addColorButton(Composite composite, String label, String key,
+      int indentation) {
+    Label labelControl = new Label(composite, SWT.NONE);
+    labelControl.setText(label);
+    GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+    gd.horizontalIndent = indentation;
+    labelControl.setLayoutData(gd);
+    ColorEditor editor = new ColorEditor(composite);
+    Button button = editor.getButton();
+    button.setData(editor);
+    gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+    button.setLayoutData(gd);
+    button.addSelectionListener(fColorButtonListener);
+    fColorButtons.put(editor, key);
+    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 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 Control addTextField(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.addModifyListener(fNumberFieldListener);
+    } else {
+      textControl.addModifyListener(fTextFieldListener);
+    }
+    return textControl;
+  }
+  private void addTextFontEditor(Composite parent, String label, String key) {
+    Composite editorComposite = new Composite(parent, SWT.NONE);
+    GridLayout layout = new GridLayout();
+    layout.numColumns = 3;
+    editorComposite.setLayout(layout);
+    fFontEditor = new WorkbenchChainedTextFontFieldEditor(key, label,
+        editorComposite);
+    fFontEditor.setChangeButtonText(PHPUIMessages
+        .getString("PHPEditorPreferencePage.change")); //$NON-NLS-1$
+    GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+    gd.horizontalSpan = 2;
+    editorComposite.setLayoutData(gd);
+  }
+  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(PHPUIMessages
+          .getString("PHPEditorPreferencePage.empty_input")); //$NON-NLS-1$
+    } else {
+      try {
+        int value = Integer.parseInt(number);
+        if (value < 0)
+          status.setError(PHPUIMessages.getFormattedString(
+              "PHPEditorPreferencePage.invalid_input", number)); //$NON-NLS-1$
+      } catch (NumberFormatException e) {
+        status.setError(PHPUIMessages.getFormattedString(
+            "PHPEditorPreferencePage.invalid_input", number)); //$NON-NLS-1$
+      }
+    }
+    return status;
+  }
+  private 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);
+      }
+    }
+    setValid(!status.matches(IStatus.ERROR));
+    StatusUtil.applyToStatusLine(this, status);
+  }
+  /**
+   * @deprecated Inline to avoid reference to preference page
+   */
+  public static boolean indicateQuixFixableProblems() {
+    return PreferenceConstants.getPreferenceStore().getBoolean(
+        PreferenceConstants.EDITOR_CORRECTION_INDICATION);
+  }
+  /**
+   * @deprecated Inline to avoid reference to preference page
+   */
+  //   static public boolean synchronizeOutlineOnCursorMove() {
+  //           return
+  // PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE);
+  //   }
 }
\ No newline at end of file