misc preferences improvements
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / preferences / JavaEditorPreferencePage.java
index 1e949f7..c25ed26 100644 (file)
@@ -21,10 +21,12 @@ import java.util.Map;
 import java.util.SortedSet;
 import java.util.StringTokenizer;
 import java.util.TreeSet;
+
 import net.sourceforge.phpdt.core.JavaCore;
 import net.sourceforge.phpdt.internal.ui.IJavaHelpContextIds;
 import net.sourceforge.phpdt.internal.ui.dialogs.StatusInfo;
 import net.sourceforge.phpdt.internal.ui.dialogs.StatusUtil;
+import net.sourceforge.phpdt.internal.ui.text.PreferencesAdapter;
 import net.sourceforge.phpdt.internal.ui.util.TabFolderLayout;
 import net.sourceforge.phpdt.ui.PreferenceConstants;
 import net.sourceforge.phpdt.ui.text.JavaTextTools;
@@ -33,10 +35,13 @@ import net.sourceforge.phpeclipse.phpeditor.EditorUtility;
 import net.sourceforge.phpeclipse.phpeditor.JavaSourceViewer;
 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.action.Action;
+import net.sourceforge.phpdt.internal.ui.preferences.FoldingConfigurationBlock;
+import net.sourceforge.phpdt.internal.ui.preferences.PreferencesMessages;
 import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferenceConverter;
 import org.eclipse.jface.preference.PreferencePage;
 import org.eclipse.jface.resource.JFaceResources;
@@ -44,16 +49,12 @@ import org.eclipse.jface.text.Document;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.source.SourceViewer;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
@@ -70,9 +71,11 @@ 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.editors.text.EditorsUI;
 import org.eclipse.ui.help.WorkbenchHelp;
+import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
 import org.eclipse.ui.texteditor.AnnotationPreference;
-import org.eclipse.ui.texteditor.ExtendedTextEditorPreferenceConstants;
+import org.eclipse.ui.texteditor.ChainedPreferenceStore;
 import org.eclipse.ui.texteditor.MarkerAnnotationPreferences;
 /**
  * The page for setting the editor options.
@@ -148,8 +151,13 @@ public class JavaEditorPreferencePage extends PreferencePage
           PreferenceConstants.EDITOR_STRING_COLOR},
       //$NON-NLS-1$
       {PreferencesMessages.getString("PHPEditorPreferencePage.others"),
-          PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR},
+          PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR}, //$NON-NLS-1$
+      { PreferencesMessages.getString("JavaEditorPreferencePage.operators"),
+        PreferenceConstants.EDITOR_PHP_OPERATOR_COLOR },  
       //$NON-NLS-1$
+        { PreferencesMessages.getString("JavaEditorPreferencePage.returnKeyword"),
+          PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_COLOR },  
+        //$NON-NLS-1$
       {PreferencesMessages.getString("PHPEditorPreferencePage.phpDocKeywords"),
           PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR},
       //$NON-NLS-1$
@@ -166,7 +174,7 @@ public class JavaEditorPreferencePage extends PreferencePage
       {
           PreferencesMessages
               .getString("JavaEditorPreferencePage.lineNumberForegroundColor"),
-          ExtendedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR},
+              AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR},
       //$NON-NLS-1$
       {
           PreferencesMessages
@@ -176,12 +184,12 @@ public class JavaEditorPreferencePage extends PreferencePage
       {
           PreferencesMessages
               .getString("JavaEditorPreferencePage.currentLineHighlighColor"),
-          ExtendedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR},
+              AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR},
       //$NON-NLS-1$
       {
           PreferencesMessages
               .getString("JavaEditorPreferencePage.printMarginColor2"),
-          ExtendedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR},
+              AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR},
       //$NON-NLS-1$
       {
           PreferencesMessages
@@ -191,7 +199,7 @@ public class JavaEditorPreferencePage extends PreferencePage
       {PreferencesMessages.getString("JavaEditorPreferencePage.linkColor2"),
           PreferenceConstants.EDITOR_LINK_COLOR}, //$NON-NLS-1$
   };
-  private final String[][] fAnnotationColorListModel;
+//  private final String[][] fAnnotationColorListModel;
   private final String[][] fContentAssistColorListModel = new String[][]{
       {
           PreferencesMessages
@@ -223,35 +231,37 @@ public class JavaEditorPreferencePage extends PreferencePage
               .getString("JavaEditorPreferencePage.foregroundForCompletionReplacement"),
           PreferenceConstants.CODEASSIST_REPLACEMENT_FOREGROUND} //$NON-NLS-1$
   };
-  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 final String[][] fAnnotationDecorationListModel = new String[][]{
+//      {
+//          PreferencesMessages
+//              .getString("JavaEditorPreferencePage.AnnotationDecoration.NONE"),
+//          AnnotationPreference.STYLE_NONE},
+//      //$NON-NLS-1$
+//      {
+//          PreferencesMessages
+//              .getString("JavaEditorPreferencePage.AnnotationDecoration.SQUIGGLIES"),
+//          AnnotationPreference.STYLE_SQUIGGLIES},
+//      //$NON-NLS-1$
+//      {
+//          PreferencesMessages
+//              .getString("JavaEditorPreferencePage.AnnotationDecoration.UNDERLINE"),
+//          AnnotationPreference.STYLE_UNDERLINE},
+//      //$NON-NLS-1$
+//      {
+//          PreferencesMessages
+//              .getString("JavaEditorPreferencePage.AnnotationDecoration.BOX"),
+//          AnnotationPreference.STYLE_BOX},
+//      //$NON-NLS-1$
+//      {
+//          PreferencesMessages
+//              .getString("JavaEditorPreferencePage.AnnotationDecoration.IBEAM"),
+//          AnnotationPreference.STYLE_IBEAM} //$NON-NLS-1$
+//  };
   private OverlayPreferenceStore fOverlayStore;
   private JavaTextTools fJavaTextTools;
   private JavaEditorHoverConfigurationBlock fJavaEditorHoverConfigurationBlock;
+  private FoldingConfigurationBlock fFoldingConfigurationBlock;
+  
   private Map fColorButtons = new HashMap();
   private Map fCheckBoxes = new HashMap();
   private SelectionListener fCheckBoxListener = new SelectionListener() {
@@ -289,8 +299,8 @@ public class JavaEditorPreferencePage extends PreferencePage
   private Button fBackgroundCustomRadioButton;
   private Button fBackgroundColorButton;
   private Button fBoldCheckBox;
-  //   private Button fAddJavaDocTagsButton;
-  //   private Button fEscapeStringsButton;
+  private Button fAddJavaDocTagsButton;
+  private Button fEscapeStringsButton;
   //   private Button fGuessMethodArgumentsButton;
   private SourceViewer fPreviewViewer;
   private Color fBackgroundColor;
@@ -321,7 +331,7 @@ public class JavaEditorPreferencePage extends PreferencePage
     MarkerAnnotationPreferences markerAnnotationPreferences = new MarkerAnnotationPreferences();
     fKeys = createOverlayStoreKeys(markerAnnotationPreferences);
     fOverlayStore = new OverlayPreferenceStore(getPreferenceStore(), fKeys);
-    fAnnotationColorListModel = createAnnotationTypeListModel(markerAnnotationPreferences);
+//    fAnnotationColorListModel = createAnnotationTypeListModel(markerAnnotationPreferences);
   }
   private OverlayPreferenceStore.OverlayKey[] createOverlayStoreKeys(
       MarkerAnnotationPreferences preferences) {
@@ -385,12 +395,18 @@ public class JavaEditorPreferencePage extends PreferencePage
     //         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_PHP_OPERATOR_COLOR));
+    overlayKeys.add(new
+       OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+       PreferenceConstants.EDITOR_PHP_OPERATOR_BOLD));
+    overlayKeys.add(new
+        OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING,
+        PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_COLOR));
+     overlayKeys.add(new
+        OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+        PreferenceConstants.EDITOR_PHP_KEYWORD_RETURN_BOLD));
     overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
         OverlayPreferenceStore.STRING,
         PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR));
@@ -423,19 +439,19 @@ public class JavaEditorPreferencePage extends PreferencePage
         PreferenceConstants.EDITOR_MATCHING_BRACKETS));
     overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
         OverlayPreferenceStore.STRING,
-        ExtendedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR));
+        AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR));
     overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
         OverlayPreferenceStore.BOOLEAN,
-        ExtendedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE));
+        AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE));
     overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
         OverlayPreferenceStore.STRING,
-        ExtendedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR));
+        AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLOR));
     overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
         OverlayPreferenceStore.INT,
-        ExtendedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN));
+        AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN));
     overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
         OverlayPreferenceStore.BOOLEAN,
-        ExtendedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN));
+        AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN));
     //         overlayKeys.add(new
     // OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
     // PreferenceConstants.EDITOR_MARK_OCCURRENCES));
@@ -455,13 +471,13 @@ public class JavaEditorPreferencePage extends PreferencePage
         PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS));
     overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
         OverlayPreferenceStore.BOOLEAN,
-        ExtendedTextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER));
+        AbstractDecoratedTextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER));
     overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
         OverlayPreferenceStore.STRING,
-        ExtendedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR));
+        AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER_COLOR));
     overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
         OverlayPreferenceStore.BOOLEAN,
-        ExtendedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER));
+        AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER));
     overlayKeys.add(new OverlayPreferenceStore.OverlayKey(
         OverlayPreferenceStore.BOOLEAN,
         PreferenceConstants.EDITOR_SPACES_FOR_TABS));
@@ -523,12 +539,12 @@ public class JavaEditorPreferencePage extends PreferencePage
         .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_STRINGS_PHP));
+               overlayKeys.add(new
+     OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN,
+     PreferenceConstants.EDITOR_CLOSE_BRACKETS_PHP));
     overlayKeys
         .add(new OverlayPreferenceStore.OverlayKey(
             OverlayPreferenceStore.BOOLEAN,
@@ -540,21 +556,21 @@ public class JavaEditorPreferencePage extends PreferencePage
         .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_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_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));
@@ -630,56 +646,56 @@ public class JavaEditorPreferencePage extends PreferencePage
     RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
     fContentAssistColorEditor.setColorValue(rgb);
   }
-  private void handleAnnotationListSelection() {
-    int i = fAnnotationList.getSelectionIndex();
-    String key = fAnnotationColorListModel[i][1];
-    RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
-    fAnnotationForegroundColorEditor.setColorValue(rgb);
-    key = fAnnotationColorListModel[i][2];
-    boolean showInText = fOverlayStore.getBoolean(key);
-    fShowInTextCheckBox.setSelection(showInText);
-    key = fAnnotationColorListModel[i][6];
-    if (key != null) {
-      fDecorationStyleCombo.setEnabled(showInText);
-      for (int j = 0; j < fAnnotationDecorationListModel.length; j++) {
-        String value = fOverlayStore.getString(key);
-        if (fAnnotationDecorationListModel[j][1].equals(value)) {
-          fDecorationStyleCombo.setText(fAnnotationDecorationListModel[j][0]);
-          break;
-        }
-      }
-    } else {
-      fDecorationStyleCombo.setEnabled(false);
-      fDecorationStyleCombo.setText(fAnnotationDecorationListModel[1][0]); // set
-                                                                           // selection
-                                                                           // to
-                                                                           // squigglies
-                                                                           // if
-                                                                           // the
-                                                                           // key
-                                                                           // is
-                                                                           // not
-                                                                           // there
-                                                                           // (legacy
-                                                                           // support)
-    }
-    key = fAnnotationColorListModel[i][3];
-    fShowInOverviewRulerCheckBox.setSelection(fOverlayStore.getBoolean(key));
-    key = fAnnotationColorListModel[i][4];
-    if (key != null) {
-      fHighlightInTextCheckBox.setSelection(fOverlayStore.getBoolean(key));
-      fHighlightInTextCheckBox.setEnabled(true);
-    } else
-      fHighlightInTextCheckBox.setEnabled(false);
-    key = fAnnotationColorListModel[i][5];
-    if (key != null) {
-      fShowInVerticalRulerCheckBox.setSelection(fOverlayStore.getBoolean(key));
-      fShowInVerticalRulerCheckBox.setEnabled(true);
-    } else {
-      fShowInVerticalRulerCheckBox.setSelection(true);
-      fShowInVerticalRulerCheckBox.setEnabled(false);
-    }
-  }
+//  private 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());
@@ -806,8 +822,11 @@ public class JavaEditorPreferencePage extends PreferencePage
   private Control createPreviewer(Composite parent) {
     Preferences coreStore = createTemporaryCorePreferenceStore();
     fJavaTextTools = new JavaTextTools(fOverlayStore, coreStore, false);
-    fPreviewViewer = new JavaSourceViewer(parent, null, null, false,
-        SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER);
+    IPreferenceStore generalTextStore= EditorsUI.getPreferenceStore();
+    IPreferenceStore store= new ChainedPreferenceStore(new IPreferenceStore[] { fOverlayStore, new PreferencesAdapter(createTemporaryCorePreferenceStore()), generalTextStore });
+       
+    fPreviewViewer= new JavaSourceViewer(parent, null, null, false, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER, store);
+       
     fPreviewViewer.configure(new PHPSourceViewerConfiguration(fJavaTextTools,
         null));
     //         Font font= JFaceResources.getFont(PreferenceConstants.EDITOR_TEXT_FONT);
@@ -818,7 +837,7 @@ public class JavaEditorPreferencePage extends PreferencePage
     fPreviewViewer.setEditable(false);
     String content = loadPreviewContentFromFile("ColorSettingPreviewCode.txt"); //$NON-NLS-1$
     IDocument document = new Document(content);
-    fJavaTextTools.setupJavaDocumentPartitioner(document, ".php"); //IJavaPartitions.JAVA_PARTITIONING);
+    fJavaTextTools.setupJavaDocumentPartitioner(document, ".php", null); //IJavaPartitions.JAVA_PARTITIONING);
     fPreviewViewer.setDocument(document);
     return fPreviewViewer.getControl();
   }
@@ -839,16 +858,16 @@ public class JavaEditorPreferencePage extends PreferencePage
     label = PreferencesMessages
         .getString("JavaEditorPreferencePage.printMarginColumn"); //$NON-NLS-1$
     addTextField(appearanceComposite, label,
-        ExtendedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN, 3, 0,
+               AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN_COLUMN, 3, 0,
         true);
     label = PreferencesMessages
         .getString("JavaEditorPreferencePage.showOverviewRuler"); //$NON-NLS-1$
     addCheckBox(appearanceComposite, label,
-        ExtendedTextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER, 0);
+               AbstractDecoratedTextEditorPreferenceConstants.EDITOR_OVERVIEW_RULER, 0);
     label = PreferencesMessages
         .getString("JavaEditorPreferencePage.showLineNumbers"); //$NON-NLS-1$
     addCheckBox(appearanceComposite, label,
-        ExtendedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER, 0);
+               AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER, 0);
     label = PreferencesMessages
         .getString("JavaEditorPreferencePage.highlightMatchingBrackets"); //$NON-NLS-1$
     addCheckBox(appearanceComposite, label,
@@ -856,11 +875,11 @@ public class JavaEditorPreferencePage extends PreferencePage
     label = PreferencesMessages
         .getString("JavaEditorPreferencePage.highlightCurrentLine"); //$NON-NLS-1$
     addCheckBox(appearanceComposite, label,
-        ExtendedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE, 0);
+               AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE, 0);
     label = PreferencesMessages
         .getString("JavaEditorPreferencePage.showPrintMargin"); //$NON-NLS-1$
     addCheckBox(appearanceComposite, label,
-        ExtendedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN, 0);
+               AbstractDecoratedTextEditorPreferenceConstants.EDITOR_PRINT_MARGIN, 0);
     label = PreferencesMessages
         .getString("JavaEditorPreferencePage.markOccurrences"); //$NON-NLS-1$
     //         Button master= addCheckBox(appearanceComposite, label,
@@ -934,185 +953,185 @@ public class JavaEditorPreferencePage extends PreferencePage
     });
     return appearanceComposite;
   }
-  private Control createAnnotationsPage(Composite parent) {
-    Composite composite = new Composite(parent, SWT.NULL);
-    GridLayout layout = new GridLayout();
-    layout.numColumns = 2;
-    composite.setLayout(layout);
-    String text = PreferencesMessages
-        .getString("JavaEditorPreferencePage.analyseAnnotationsWhileTyping"); //$NON-NLS-1$
-    addCheckBox(composite, text,
-        PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS, 0);
-    text = PreferencesMessages
-        .getString("JavaEditorPreferencePage.showQuickFixables"); //$NON-NLS-1$
-    addCheckBox(composite, text,
-        PreferenceConstants.EDITOR_CORRECTION_INDICATION, 0);
-    addFiller(composite);
-    Label label = new Label(composite, SWT.LEFT);
-    label.setText(PreferencesMessages
-        .getString("JavaEditorPreferencePage.annotationPresentationOptions")); //$NON-NLS-1$
-    GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-    gd.horizontalSpan = 2;
-    label.setLayoutData(gd);
-    Composite editorComposite = new Composite(composite, SWT.NONE);
-    layout = new GridLayout();
-    layout.numColumns = 2;
-    layout.marginHeight = 0;
-    layout.marginWidth = 0;
-    editorComposite.setLayout(layout);
-    gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_VERTICAL);
-    gd.horizontalSpan = 2;
-    editorComposite.setLayoutData(gd);
-    fAnnotationList = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL
-        | SWT.BORDER);
-    gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING
-        | GridData.FILL_HORIZONTAL);
-    gd.heightHint = convertHeightInCharsToPixels(10);
-    fAnnotationList.setLayoutData(gd);
-    Composite optionsComposite = new Composite(editorComposite, SWT.NONE);
-    layout = new GridLayout();
-    layout.marginHeight = 0;
-    layout.marginWidth = 0;
-    layout.numColumns = 2;
-    optionsComposite.setLayout(layout);
-    optionsComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-    fShowInTextCheckBox = new Button(optionsComposite, SWT.CHECK);
-    fShowInTextCheckBox.setText(PreferencesMessages
-        .getString("JavaEditorPreferencePage.annotations.showInText")); //$NON-NLS-1$
-    gd = new GridData(GridData.FILL_HORIZONTAL);
-    gd.horizontalAlignment = GridData.BEGINNING;
-    gd.horizontalSpan = 2;
-    fShowInTextCheckBox.setLayoutData(gd);
-    fDecorationStyleCombo = new Combo(optionsComposite, SWT.READ_ONLY);
-    for (int i = 0; i < fAnnotationDecorationListModel.length; i++)
-      fDecorationStyleCombo.add(fAnnotationDecorationListModel[i][0]);
-    gd = new GridData(GridData.FILL_HORIZONTAL);
-    gd.horizontalAlignment = GridData.BEGINNING;
-    gd.horizontalSpan = 2;
-    gd.horizontalIndent = 20;
-    fDecorationStyleCombo.setLayoutData(gd);
-    fHighlightInTextCheckBox = new Button(optionsComposite, SWT.CHECK);
-    fHighlightInTextCheckBox.setText(PreferencesMessages
-        .getString("TextEditorPreferencePage.annotations.highlightInText")); //$NON-NLS-1$
-    gd = new GridData(GridData.FILL_HORIZONTAL);
-    gd.horizontalAlignment = GridData.BEGINNING;
-    gd.horizontalSpan = 2;
-    fHighlightInTextCheckBox.setLayoutData(gd);
-    fShowInOverviewRulerCheckBox = new Button(optionsComposite, SWT.CHECK);
-    fShowInOverviewRulerCheckBox.setText(PreferencesMessages
-        .getString("JavaEditorPreferencePage.annotations.showInOverviewRuler")); //$NON-NLS-1$
-    gd = new GridData(GridData.FILL_HORIZONTAL);
-    gd.horizontalAlignment = GridData.BEGINNING;
-    gd.horizontalSpan = 2;
-    fShowInOverviewRulerCheckBox.setLayoutData(gd);
-    fShowInVerticalRulerCheckBox = new Button(optionsComposite, SWT.CHECK);
-    fShowInVerticalRulerCheckBox.setText(PreferencesMessages
-        .getString("JavaEditorPreferencePage.annotations.showInVerticalRuler")); //$NON-NLS-1$
-    gd = new GridData(GridData.FILL_HORIZONTAL);
-    gd.horizontalAlignment = GridData.BEGINNING;
-    gd.horizontalSpan = 2;
-    fShowInVerticalRulerCheckBox.setLayoutData(gd);
-    label = new Label(optionsComposite, SWT.LEFT);
-    label.setText(PreferencesMessages
-        .getString("JavaEditorPreferencePage.annotations.color")); //$NON-NLS-1$
-    gd = new GridData();
-    gd.horizontalAlignment = GridData.BEGINNING;
-    label.setLayoutData(gd);
-    fAnnotationForegroundColorEditor = new ColorEditor(optionsComposite);
-    Button foregroundColorButton = fAnnotationForegroundColorEditor.getButton();
-    gd = new GridData(GridData.FILL_HORIZONTAL);
-    gd.horizontalAlignment = GridData.BEGINNING;
-    foregroundColorButton.setLayoutData(gd);
-    fAnnotationList.addSelectionListener(new SelectionListener() {
-      public void widgetDefaultSelected(SelectionEvent e) {
-        // do nothing
-      }
-      public void widgetSelected(SelectionEvent e) {
-        handleAnnotationListSelection();
-      }
-    });
-    fShowInTextCheckBox.addSelectionListener(new SelectionListener() {
-      public void widgetDefaultSelected(SelectionEvent e) {
-        // do nothing
-      }
-      public void widgetSelected(SelectionEvent e) {
-        int i = fAnnotationList.getSelectionIndex();
-        String key = fAnnotationColorListModel[i][2];
-        fOverlayStore.setValue(key, fShowInTextCheckBox.getSelection());
-        String decorationKey = fAnnotationColorListModel[i][6];
-        fDecorationStyleCombo.setEnabled(decorationKey != null
-            && fShowInTextCheckBox.getSelection());
-      }
-    });
-    fHighlightInTextCheckBox.addSelectionListener(new SelectionListener() {
-      public void widgetDefaultSelected(SelectionEvent e) {
-        // do nothing
-      }
-      public void widgetSelected(SelectionEvent e) {
-        int i = fAnnotationList.getSelectionIndex();
-        String key = fAnnotationColorListModel[i][4];
-        fOverlayStore.setValue(key, fHighlightInTextCheckBox.getSelection());
-      }
-    });
-    fShowInOverviewRulerCheckBox.addSelectionListener(new SelectionListener() {
-      public void widgetDefaultSelected(SelectionEvent e) {
-        // do nothing
-      }
-      public void widgetSelected(SelectionEvent e) {
-        int i = fAnnotationList.getSelectionIndex();
-        String key = fAnnotationColorListModel[i][3];
-        fOverlayStore
-            .setValue(key, fShowInOverviewRulerCheckBox.getSelection());
-      }
-    });
-    fShowInVerticalRulerCheckBox.addSelectionListener(new SelectionListener() {
-      public void widgetDefaultSelected(SelectionEvent e) {
-        // do nothing
-      }
-      public void widgetSelected(SelectionEvent e) {
-        int i = fAnnotationList.getSelectionIndex();
-        String key = fAnnotationColorListModel[i][5];
-        fOverlayStore
-            .setValue(key, fShowInVerticalRulerCheckBox.getSelection());
-      }
-    });
-    foregroundColorButton.addSelectionListener(new SelectionListener() {
-      public void widgetDefaultSelected(SelectionEvent e) {
-        // do nothing
-      }
-      public void widgetSelected(SelectionEvent e) {
-        int i = fAnnotationList.getSelectionIndex();
-        String key = fAnnotationColorListModel[i][1];
-        PreferenceConverter.setValue(fOverlayStore, key,
-            fAnnotationForegroundColorEditor.getColorValue());
-      }
-    });
-    fDecorationStyleCombo.addSelectionListener(new SelectionListener() {
-      /**
-       * {@inheritdoc}
-       */
-      public void widgetDefaultSelected(SelectionEvent e) {
-        // do nothing
-      }
-      /**
-       * {@inheritdoc}
-       */
-      public void widgetSelected(SelectionEvent e) {
-        int i = fAnnotationList.getSelectionIndex();
-        String key = fAnnotationColorListModel[i][6];
-        if (key != null) {
-          for (int j = 0; j < fAnnotationDecorationListModel.length; j++) {
-            if (fAnnotationDecorationListModel[j][0]
-                .equals(fDecorationStyleCombo.getText())) {
-              fOverlayStore.setValue(key, fAnnotationDecorationListModel[j][1]);
-              break;
-            }
-          }
-        }
-      }
-    });
-    return composite;
-  }
+//  private Control createAnnotationsPage(Composite parent) {
+//    Composite composite = new Composite(parent, SWT.NULL);
+//    GridLayout layout = new GridLayout();
+//    layout.numColumns = 2;
+//    composite.setLayout(layout);
+//    String text = PreferencesMessages
+//        .getString("JavaEditorPreferencePage.analyseAnnotationsWhileTyping"); //$NON-NLS-1$
+//    addCheckBox(composite, text,
+//        PreferenceConstants.EDITOR_EVALUTE_TEMPORARY_PROBLEMS, 0);
+//    text = PreferencesMessages
+//        .getString("JavaEditorPreferencePage.showQuickFixables"); //$NON-NLS-1$
+//    addCheckBox(composite, text,
+//        PreferenceConstants.EDITOR_CORRECTION_INDICATION, 0);
+//    addFiller(composite);
+//    Label label = new Label(composite, SWT.LEFT);
+//    label.setText(PreferencesMessages
+//        .getString("JavaEditorPreferencePage.annotationPresentationOptions")); //$NON-NLS-1$
+//    GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+//    gd.horizontalSpan = 2;
+//    label.setLayoutData(gd);
+//    Composite editorComposite = new Composite(composite, SWT.NONE);
+//    layout = new GridLayout();
+//    layout.numColumns = 2;
+//    layout.marginHeight = 0;
+//    layout.marginWidth = 0;
+//    editorComposite.setLayout(layout);
+//    gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_VERTICAL);
+//    gd.horizontalSpan = 2;
+//    editorComposite.setLayoutData(gd);
+//    fAnnotationList = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL
+//        | SWT.BORDER);
+//    gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING
+//        | GridData.FILL_HORIZONTAL);
+//    gd.heightHint = convertHeightInCharsToPixels(10);
+//    fAnnotationList.setLayoutData(gd);
+//    Composite optionsComposite = new Composite(editorComposite, SWT.NONE);
+//    layout = new GridLayout();
+//    layout.marginHeight = 0;
+//    layout.marginWidth = 0;
+//    layout.numColumns = 2;
+//    optionsComposite.setLayout(layout);
+//    optionsComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
+//    fShowInTextCheckBox = new Button(optionsComposite, SWT.CHECK);
+//    fShowInTextCheckBox.setText(PreferencesMessages
+//        .getString("JavaEditorPreferencePage.annotations.showInText")); //$NON-NLS-1$
+//    gd = new GridData(GridData.FILL_HORIZONTAL);
+//    gd.horizontalAlignment = GridData.BEGINNING;
+//    gd.horizontalSpan = 2;
+//    fShowInTextCheckBox.setLayoutData(gd);
+//    fDecorationStyleCombo = new Combo(optionsComposite, SWT.READ_ONLY);
+//    for (int i = 0; i < fAnnotationDecorationListModel.length; i++)
+//      fDecorationStyleCombo.add(fAnnotationDecorationListModel[i][0]);
+//    gd = new GridData(GridData.FILL_HORIZONTAL);
+//    gd.horizontalAlignment = GridData.BEGINNING;
+//    gd.horizontalSpan = 2;
+//    gd.horizontalIndent = 20;
+//    fDecorationStyleCombo.setLayoutData(gd);
+//    fHighlightInTextCheckBox = new Button(optionsComposite, SWT.CHECK);
+//    fHighlightInTextCheckBox.setText(PreferencesMessages
+//        .getString("TextEditorPreferencePage.annotations.highlightInText")); //$NON-NLS-1$
+//    gd = new GridData(GridData.FILL_HORIZONTAL);
+//    gd.horizontalAlignment = GridData.BEGINNING;
+//    gd.horizontalSpan = 2;
+//    fHighlightInTextCheckBox.setLayoutData(gd);
+//    fShowInOverviewRulerCheckBox = new Button(optionsComposite, SWT.CHECK);
+//    fShowInOverviewRulerCheckBox.setText(PreferencesMessages
+//        .getString("JavaEditorPreferencePage.annotations.showInOverviewRuler")); //$NON-NLS-1$
+//    gd = new GridData(GridData.FILL_HORIZONTAL);
+//    gd.horizontalAlignment = GridData.BEGINNING;
+//    gd.horizontalSpan = 2;
+//    fShowInOverviewRulerCheckBox.setLayoutData(gd);
+//    fShowInVerticalRulerCheckBox = new Button(optionsComposite, SWT.CHECK);
+//    fShowInVerticalRulerCheckBox.setText(PreferencesMessages
+//        .getString("JavaEditorPreferencePage.annotations.showInVerticalRuler")); //$NON-NLS-1$
+//    gd = new GridData(GridData.FILL_HORIZONTAL);
+//    gd.horizontalAlignment = GridData.BEGINNING;
+//    gd.horizontalSpan = 2;
+//    fShowInVerticalRulerCheckBox.setLayoutData(gd);
+//    label = new Label(optionsComposite, SWT.LEFT);
+//    label.setText(PreferencesMessages
+//        .getString("JavaEditorPreferencePage.annotations.color")); //$NON-NLS-1$
+//    gd = new GridData();
+//    gd.horizontalAlignment = GridData.BEGINNING;
+//    label.setLayoutData(gd);
+//    fAnnotationForegroundColorEditor = new ColorEditor(optionsComposite);
+//    Button foregroundColorButton = fAnnotationForegroundColorEditor.getButton();
+//    gd = new GridData(GridData.FILL_HORIZONTAL);
+//    gd.horizontalAlignment = GridData.BEGINNING;
+//    foregroundColorButton.setLayoutData(gd);
+//    fAnnotationList.addSelectionListener(new SelectionListener() {
+//      public void widgetDefaultSelected(SelectionEvent e) {
+//        // do nothing
+//      }
+//      public void widgetSelected(SelectionEvent e) {
+//        handleAnnotationListSelection();
+//      }
+//    });
+//    fShowInTextCheckBox.addSelectionListener(new SelectionListener() {
+//      public void widgetDefaultSelected(SelectionEvent e) {
+//        // do nothing
+//      }
+//      public void widgetSelected(SelectionEvent e) {
+//        int i = fAnnotationList.getSelectionIndex();
+//        String key = fAnnotationColorListModel[i][2];
+//        fOverlayStore.setValue(key, fShowInTextCheckBox.getSelection());
+//        String decorationKey = fAnnotationColorListModel[i][6];
+//        fDecorationStyleCombo.setEnabled(decorationKey != null
+//            && fShowInTextCheckBox.getSelection());
+//      }
+//    });
+//    fHighlightInTextCheckBox.addSelectionListener(new SelectionListener() {
+//      public void widgetDefaultSelected(SelectionEvent e) {
+//        // do nothing
+//      }
+//      public void widgetSelected(SelectionEvent e) {
+//        int i = fAnnotationList.getSelectionIndex();
+//        String key = fAnnotationColorListModel[i][4];
+//        fOverlayStore.setValue(key, fHighlightInTextCheckBox.getSelection());
+//      }
+//    });
+//    fShowInOverviewRulerCheckBox.addSelectionListener(new SelectionListener() {
+//      public void widgetDefaultSelected(SelectionEvent e) {
+//        // do nothing
+//      }
+//      public void widgetSelected(SelectionEvent e) {
+//        int i = fAnnotationList.getSelectionIndex();
+//        String key = fAnnotationColorListModel[i][3];
+//        fOverlayStore
+//            .setValue(key, fShowInOverviewRulerCheckBox.getSelection());
+//      }
+//    });
+//    fShowInVerticalRulerCheckBox.addSelectionListener(new SelectionListener() {
+//      public void widgetDefaultSelected(SelectionEvent e) {
+//        // do nothing
+//      }
+//      public void widgetSelected(SelectionEvent e) {
+//        int i = fAnnotationList.getSelectionIndex();
+//        String key = fAnnotationColorListModel[i][5];
+//        fOverlayStore
+//            .setValue(key, fShowInVerticalRulerCheckBox.getSelection());
+//      }
+//    });
+//    foregroundColorButton.addSelectionListener(new SelectionListener() {
+//      public void widgetDefaultSelected(SelectionEvent e) {
+//        // do nothing
+//      }
+//      public void widgetSelected(SelectionEvent e) {
+//        int i = fAnnotationList.getSelectionIndex();
+//        String key = fAnnotationColorListModel[i][1];
+//        PreferenceConverter.setValue(fOverlayStore, key,
+//            fAnnotationForegroundColorEditor.getColorValue());
+//      }
+//    });
+//    fDecorationStyleCombo.addSelectionListener(new SelectionListener() {
+//      /**
+//       * {@inheritdoc}
+//       */
+//      public void widgetDefaultSelected(SelectionEvent e) {
+//        // do nothing
+//      }
+//      /**
+//       * {@inheritdoc}
+//       */
+//      public void widgetSelected(SelectionEvent e) {
+//        int i = fAnnotationList.getSelectionIndex();
+//        String key = fAnnotationColorListModel[i][6];
+//        if (key != null) {
+//          for (int j = 0; j < fAnnotationDecorationListModel.length; j++) {
+//            if (fAnnotationDecorationListModel[j][0]
+//                .equals(fDecorationStyleCombo.getText())) {
+//              fOverlayStore.setValue(key, fAnnotationDecorationListModel[j][1]);
+//              break;
+//            }
+//          }
+//        }
+//      }
+//    });
+//    return composite;
+//  }
   private String[][] createAnnotationTypeListModel(
       MarkerAnnotationPreferences preferences) {
     ArrayList listModelItems = new ArrayList();
@@ -1151,82 +1170,82 @@ public class JavaEditorPreferencePage extends PreferencePage
     GridLayout layout = new GridLayout();
     layout.numColumns = 1;
     composite.setLayout(layout);
-    //         String label=
-    // PreferencesMessages.getString("JavaEditorPreferencePage.overwriteMode");
-    // //$NON-NLS-1$
-    //         addCheckBox(composite, label,
-    // PreferenceConstants.EDITOR_DISABLE_OVERWRITE_MODE, 1);
-    //         addFiller(composite);
-    //         
-    //         label=
-    // PreferencesMessages.getString("JavaEditorPreferencePage.smartHomeEnd");
-    // //$NON-NLS-1$
-    //         addCheckBox(composite, label, PreferenceConstants.EDITOR_SMART_HOME_END,
-    // 1);
-    //
-    //         label=
-    // PreferencesMessages.getString("JavaEditorPreferencePage.subWordNavigation");
-    // //$NON-NLS-1$
-    //         addCheckBox(composite, label,
-    // PreferenceConstants.EDITOR_SUB_WORD_NAVIGATION, 1);
-    addFiller(composite);
+               String label=
+     PreferencesMessages.getString("JavaEditorPreferencePage.overwriteMode");
+     //$NON-NLS-1$
+               addCheckBox(composite, label,
+     PreferenceConstants.EDITOR_DISABLE_OVERWRITE_MODE, 1);
+               addFiller(composite);
+               
+               label=
+     PreferencesMessages.getString("JavaEditorPreferencePage.smartHomeEnd");
+     //$NON-NLS-1$
+               addCheckBox(composite, label, PreferenceConstants.EDITOR_SMART_HOME_END,
+     1);
+    
+               label=
+     PreferencesMessages.getString("JavaEditorPreferencePage.subWordNavigation");
+     //$NON-NLS-1$
+               addCheckBox(composite, label,
+     PreferenceConstants.EDITOR_SUB_WORD_NAVIGATION, 1);
+    addFiller(composite); 
     Group group = new Group(composite, SWT.NONE);
     layout = new GridLayout();
     layout.numColumns = 2;
     group.setLayout(layout);
     group.setText(PreferencesMessages
         .getString("JavaEditorPreferencePage.typing.description")); //$NON-NLS-1$
-    //         label=
-    // PreferencesMessages.getString("JavaEditorPreferencePage.wrapStrings");
-    // //$NON-NLS-1$
-    //         Button button= addCheckBox(group, label,
-    // PreferenceConstants.EDITOR_WRAP_STRINGS, 1);
-    //         
-    //         label=
-    // PreferencesMessages.getString("JavaEditorPreferencePage.escapeStrings");
-    // //$NON-NLS-1$
-    //         fEscapeStringsButton= addCheckBox(group, label,
-    // PreferenceConstants.EDITOR_ESCAPE_STRINGS, 1);
-    //         createDependency(button, fEscapeStringsButton);
-    //
-    //         label=
-    // PreferencesMessages.getString("JavaEditorPreferencePage.smartPaste");
-    // //$NON-NLS-1$
-    //         addCheckBox(group, label, PreferenceConstants.EDITOR_SMART_PASTE, 1);
-    //
-    //         label=
-    // PreferencesMessages.getString("JavaEditorPreferencePage.insertSpaceForTabs");
-    // //$NON-NLS-1$
-    //         addCheckBox(group, label, PreferenceConstants.EDITOR_SPACES_FOR_TABS,
-    // 1);
-    //
-    //         label=
-    // PreferencesMessages.getString("JavaEditorPreferencePage.closeStrings");
-    // //$NON-NLS-1$
-    //         addCheckBox(group, label, PreferenceConstants.EDITOR_CLOSE_STRINGS, 1);
-    //
-    //         label=
-    // PreferencesMessages.getString("JavaEditorPreferencePage.closeBrackets");
-    // //$NON-NLS-1$
-    //         addCheckBox(group, label, PreferenceConstants.EDITOR_CLOSE_BRACKETS, 1);
-    //
-    //         label=
-    // PreferencesMessages.getString("JavaEditorPreferencePage.closeBraces");
-    // //$NON-NLS-1$
-    //         addCheckBox(group, label, PreferenceConstants.EDITOR_CLOSE_BRACES, 1);
-    //
-    //         label=
-    // PreferencesMessages.getString("JavaEditorPreferencePage.closeJavaDocs");
-    // //$NON-NLS-1$
-    //         button= addCheckBox(group, label,
-    // PreferenceConstants.EDITOR_CLOSE_JAVADOCS, 1);
-    //
-    //         label=
-    // PreferencesMessages.getString("JavaEditorPreferencePage.addJavaDocTags");
-    // //$NON-NLS-1$
-    //         fAddJavaDocTagsButton= addCheckBox(group, label,
-    // PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS, 1);
-    //         createDependency(button, fAddJavaDocTagsButton);
+               label=
+     PreferencesMessages.getString("JavaEditorPreferencePage.wrapStrings");
+     //$NON-NLS-1$
+               Button button= addCheckBox(group, label,
+     PreferenceConstants.EDITOR_WRAP_STRINGS, 1);
+               
+               label=
+     PreferencesMessages.getString("JavaEditorPreferencePage.escapeStrings");
+     //$NON-NLS-1$
+               fEscapeStringsButton= addCheckBox(group, label,
+     PreferenceConstants.EDITOR_ESCAPE_STRINGS, 1);
+               createDependency(button, fEscapeStringsButton);
+    
+               label=
+     PreferencesMessages.getString("JavaEditorPreferencePage.smartPaste");
+     //$NON-NLS-1$
+               addCheckBox(group, label, PreferenceConstants.EDITOR_SMART_PASTE, 1);
+    
+               label=
+     PreferencesMessages.getString("JavaEditorPreferencePage.insertSpaceForTabs");
+     //$NON-NLS-1$
+               addCheckBox(group, label, PreferenceConstants.EDITOR_SPACES_FOR_TABS,
+     1);
+    
+               label=
+     PreferencesMessages.getString("JavaEditorPreferencePage.closeStrings");
+     //$NON-NLS-1$
+               addCheckBox(group, label, PreferenceConstants.EDITOR_CLOSE_STRINGS_PHP, 1);
+    
+               label=
+     PreferencesMessages.getString("JavaEditorPreferencePage.closeBrackets");
+     //$NON-NLS-1$
+               addCheckBox(group, label, PreferenceConstants.EDITOR_CLOSE_BRACKETS_PHP, 1);
+    
+               label=
+     PreferencesMessages.getString("JavaEditorPreferencePage.closeBraces");
+     //$NON-NLS-1$
+               addCheckBox(group, label, PreferenceConstants.EDITOR_CLOSE_BRACES, 1);
+    
+               label=
+     PreferencesMessages.getString("JavaEditorPreferencePage.closeJavaDocs");
+     //$NON-NLS-1$
+               button= addCheckBox(group, label,
+     PreferenceConstants.EDITOR_CLOSE_JAVADOCS, 1);
+    
+               label=
+     PreferencesMessages.getString("JavaEditorPreferencePage.addJavaDocTags");
+     //$NON-NLS-1$
+               fAddJavaDocTagsButton= addCheckBox(group, label,
+     PreferenceConstants.EDITOR_ADD_JAVADOC_TAGS, 1);
+               createDependency(button, fAddJavaDocTagsButton);
     return composite;
   }
   private void addFiller(Composite composite) {
@@ -1556,6 +1575,7 @@ public class JavaEditorPreferencePage extends PreferencePage
    */
   protected Control createContents(Composite parent) {
     initializeDefaultColors();
+    fFoldingConfigurationBlock= new FoldingConfigurationBlock(fOverlayStore);
     fOverlayStore.load();
     fOverlayStore.start();
     TabFolder folder = new TabFolder(parent, SWT.NONE);
@@ -1569,30 +1589,31 @@ public class JavaEditorPreferencePage extends PreferencePage
     item.setText(PreferencesMessages
         .getString("JavaEditorPreferencePage.colors")); //$NON-NLS-1$
     item.setControl(createSyntaxPage(folder));
-    //         item= new TabItem(folder, SWT.NONE);
-    //         item.setText(PreferencesMessages.getString("JavaEditorPreferencePage.codeAssist"));
-    // //$NON-NLS-1$
-    //         item.setControl(createContentAssistPage(folder));
-    item = new TabItem(folder, SWT.NONE);
-    item.setText(PreferencesMessages
-        .getString("JavaEditorPreferencePage.annotationsTab.title")); //$NON-NLS-1$
-    item.setControl(createAnnotationsPage(folder));
-    //         item= new TabItem(folder, SWT.NONE);
-    //         item.setText(PreferencesMessages.getString("JavaEditorPreferencePage.typing.tabTitle"));
-    // //$NON-NLS-1$
-    //         item.setControl(createTypingPage(folder));
-    //
-    //         item= new TabItem(folder, SWT.NONE);
-    //         item.setText(PreferencesMessages.getString("JavaEditorPreferencePage.hoverTab.title"));
-    // //$NON-NLS-1$
-    //         fJavaEditorHoverConfigurationBlock= new
-    // JavaEditorHoverConfigurationBlock(this, fOverlayStore);
-    //         item.setControl(fJavaEditorHoverConfigurationBlock.createControl(folder));
-    //         item= new TabItem(folder, SWT.NONE);
-    //         item.setText(PreferencesMessages.getString("JavaEditorPreferencePage.navigationTab.title"));
-    // //$NON-NLS-1$
-    //         item.setControl(createNavigationPage(folder));
-    //         
+               item= new TabItem(folder, SWT.NONE);
+               item.setText(PreferencesMessages.getString("JavaEditorPreferencePage.codeAssist"));
+     //$NON-NLS-1$
+               item.setControl(createContentAssistPage(folder));
+//    item = new TabItem(folder, SWT.NONE);
+//    item.setText(PreferencesMessages
+//        .getString("JavaEditorPreferencePage.annotationsTab.title")); //$NON-NLS-1$
+//    item.setControl(createAnnotationsPage(folder));
+               item= new TabItem(folder, SWT.NONE);
+               item.setText(PreferencesMessages.getString("JavaEditorPreferencePage.typing.tabTitle"));
+     //$NON-NLS-1$
+               item.setControl(createTypingPage(folder));
+    
+               item= new TabItem(folder, SWT.NONE);
+               item.setText(PreferencesMessages.getString("JavaEditorPreferencePage.hoverTab.title"));
+     //$NON-NLS-1$
+               fJavaEditorHoverConfigurationBlock= new JavaEditorHoverConfigurationBlock(this, fOverlayStore);
+               item.setControl(fJavaEditorHoverConfigurationBlock.createControl(folder));
+//             item= new TabItem(folder, SWT.NONE);
+//             item.setText(PreferencesMessages.getString("JavaEditorPreferencePage.navigationTab.title"));  //$NON-NLS-1$
+//             item.setControl(createNavigationPage(folder));
+               item= new TabItem(folder, SWT.NONE);
+               item.setText(PreferencesMessages.getString("JavaEditorPreferencePage.folding.title")); //$NON-NLS-1$
+               item.setControl(fFoldingConfigurationBlock.createControl(folder));
+
     initialize();
     Dialog.applyDialogFont(folder);
     return folder;
@@ -1619,16 +1640,16 @@ public class JavaEditorPreferencePage extends PreferencePage
         }
       }
     });
-    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 < 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() {
@@ -1640,6 +1661,7 @@ public class JavaEditorPreferencePage extends PreferencePage
     //                         }
     //                 }
     //         });
+    fFoldingConfigurationBlock.initialize();
   }
   private void initializeFields() {
     Iterator e = fColorButtons.keySet().iterator();
@@ -1669,10 +1691,10 @@ public class JavaEditorPreferencePage extends PreferencePage
     fBackgroundDefaultRadioButton.setSelection(default_);
     fBackgroundCustomRadioButton.setSelection(!default_);
     fBackgroundColorButton.setEnabled(!default_);
-    //         boolean closeJavaDocs=
-    // fOverlayStore.getBoolean(PreferenceConstants.EDITOR_CLOSE_JAVADOCS);
-    //         fAddJavaDocTagsButton.setEnabled(closeJavaDocs);
-    //         fEscapeStringsButton.setEnabled(fOverlayStore.getBoolean(PreferenceConstants.EDITOR_WRAP_STRINGS));
+               boolean closeJavaDocs=
+     fOverlayStore.getBoolean(PreferenceConstants.EDITOR_CLOSE_JAVADOCS);
+               fAddJavaDocTagsButton.setEnabled(closeJavaDocs);
+               fEscapeStringsButton.setEnabled(fOverlayStore.getBoolean(PreferenceConstants.EDITOR_WRAP_STRINGS));
     //         boolean fillMethodArguments=
     // fOverlayStore.getBoolean(PreferenceConstants.CODEASSIST_FILL_ARGUMENT_NAMES);
     //         fGuessMethodArgumentsButton.setEnabled(fillMethodArguments);
@@ -1723,6 +1745,7 @@ public class JavaEditorPreferencePage extends PreferencePage
    */
   public boolean performOk() {
     //         fJavaEditorHoverConfigurationBlock.performOk();
+       fFoldingConfigurationBlock.performOk();
     //         fOverlayStore.setValue(PreferenceConstants.EDITOR_BROWSER_LIKE_LINKS_KEY_MODIFIER_MASK,
     // computeStateMask(fBrowserLikeLinksKeyModifierText.getText()));
     fOverlayStore.propagate();
@@ -1737,9 +1760,10 @@ public class JavaEditorPreferencePage extends PreferencePage
     initializeFields();
     handleSyntaxColorListSelection();
     handleAppearanceColorListSelection();
-    handleAnnotationListSelection();
+//    handleAnnotationListSelection();
     //         handleContentAssistColorListSelection();
     //         fJavaEditorHoverConfigurationBlock.performDefaults();
+    fFoldingConfigurationBlock.performDefaults();
     super.performDefaults();
     fPreviewViewer.invalidateTextPresentation();
   }
@@ -1747,6 +1771,8 @@ public class JavaEditorPreferencePage extends PreferencePage
    * @see DialogPage#dispose()
    */
   public void dispose() {
+       fFoldingConfigurationBlock.dispose();
+       
     if (fJavaTextTools != null) {
       fJavaTextTools.dispose();
       fJavaTextTools = null;