1 package net.sourceforge.phpeclipse;
 
   3 import java.util.HashMap;
 
   4 import java.util.Iterator;
 
   7 import net.sourceforge.phpeclipse.preferences.ColorEditor;
 
   8 import net.sourceforge.phpeclipse.preferences.OverlayPreferenceStore;
 
   9 import net.sourceforge.phpeclipse.preferences.PHPPreferencesMessages;
 
  11 import org.eclipse.core.runtime.IStatus;
 
  12 import org.eclipse.jface.preference.BooleanFieldEditor;
 
  13 import org.eclipse.jface.preference.FileFieldEditor;
 
  14 import org.eclipse.jface.preference.IPreferenceStore;
 
  15 import org.eclipse.jface.preference.IntegerFieldEditor;
 
  16 import org.eclipse.jface.preference.PreferenceConverter;
 
  17 import org.eclipse.jface.preference.PreferencePage;
 
  18 import org.eclipse.jface.text.source.ISourceViewer;
 
  19 import org.eclipse.swt.SWT;
 
  20 import org.eclipse.swt.custom.StyledText;
 
  21 import org.eclipse.swt.events.SelectionEvent;
 
  22 import org.eclipse.swt.events.SelectionListener;
 
  23 import org.eclipse.swt.graphics.Color;
 
  24 import org.eclipse.swt.graphics.RGB;
 
  25 import org.eclipse.swt.layout.GridData;
 
  26 import org.eclipse.swt.layout.GridLayout;
 
  27 import org.eclipse.swt.widgets.Button;
 
  28 import org.eclipse.swt.widgets.Composite;
 
  29 import org.eclipse.swt.widgets.Control;
 
  30 import org.eclipse.swt.widgets.Display;
 
  31 import org.eclipse.swt.widgets.Group;
 
  32 import org.eclipse.swt.widgets.Label;
 
  33 import org.eclipse.swt.widgets.List;
 
  34 import org.eclipse.ui.IWorkbench;
 
  35 import org.eclipse.ui.IWorkbenchPreferencePage;
 
  38  * The preference page for setting the PHP Editor options.
 
  40 public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
 
  42   public final OverlayPreferenceStore.OverlayKey[] Keys =
 
  43     new OverlayPreferenceStore.OverlayKey[] {
 
  44       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_MULTILINE_COMMENT),
 
  45       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_MULTILINE_COMMENT_BOLD),
 
  46       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_MULTILINE_COMMENT_ITALIC),
 
  47       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_MULTILINE_COMMENT_UNDERLINE),
 
  48       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_SINGLELINE_COMMENT),
 
  49       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_SINGLELINE_COMMENT_BOLD),
 
  50       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_SINGLELINE_COMMENT_ITALIC),
 
  51       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_SINGLELINE_COMMENT_UNDERLINE),
 
  52       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_KEYWORD),
 
  53       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_KEYWORD_BOLD),
 
  54       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_KEYWORD_ITALIC),
 
  55       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_KEYWORD_UNDERLINE),
 
  56       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_VARIABLE),
 
  57       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_VARIABLE_BOLD),
 
  58       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_VARIABLE_ITALIC),
 
  59       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_VARIABLE_UNDERLINE),
 
  60       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_TYPE),
 
  61       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_TYPE_BOLD),
 
  62       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_TYPE_ITALIC),
 
  63       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_TYPE_UNDERLINE),
 
  64       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_CONSTANT),
 
  65       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_CONSTANT_BOLD),
 
  66       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_CONSTANT_ITALIC),
 
  67       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_CONSTANT_UNDERLINE),
 
  68       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_FUNCTIONNAME),
 
  69       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_FUNCTIONNAME_BOLD),
 
  70       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_FUNCTIONNAME_ITALIC),
 
  71       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_FUNCTIONNAME_UNDERLINE),
 
  72       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_STRING),
 
  73       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_STRING_BOLD),
 
  74       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_STRING_ITALIC),
 
  75       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_STRING_UNDERLINE),
 
  76       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_DEFAULT),
 
  77       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_DEFAULT_BOLD),
 
  78       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_DEFAULT_ITALIC),
 
  79       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_DEFAULT_UNDERLINE),
 
  80       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_USERDEF_XMLFILE),
 
  81   //    new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_EDITOR_BACKGROUND)
 
  84   private final String[][] SyntaxColorListModel =
 
  87         PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.multiLineComment"),
 
  88         IPreferenceConstants.PHP_MULTILINE_COMMENT },
 
  90       PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.singleLineComment"),
 
  91         IPreferenceConstants.PHP_SINGLELINE_COMMENT },
 
  93       PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.keywords"), IPreferenceConstants.PHP_KEYWORD }, {
 
  94       PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.variables"), IPreferenceConstants.PHP_VARIABLE }, {
 
  95       PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.types"), IPreferenceConstants.PHP_TYPE }, {
 
  96       PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.functions"), IPreferenceConstants.PHP_FUNCTIONNAME }, {
 
  97       PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.constants"), IPreferenceConstants.PHP_CONSTANT }, {
 
  98       PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.strings"), IPreferenceConstants.PHP_STRING }, {
 
  99       PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.others"), IPreferenceConstants.PHP_DEFAULT }
 
 102   private OverlayPreferenceStore OverlayStore;
 
 104   private Map ColorButtons = new HashMap();
 
 105   private SelectionListener ColorButtonListener = new SelectionListener() {
 
 106     public void widgetDefaultSelected(SelectionEvent e) {
 
 108     public void widgetSelected(SelectionEvent e) {
 
 109       ColorEditor editor = (ColorEditor) e.widget.getData();
 
 110       PreferenceConverter.setValue(OverlayStore, (String) ColorButtons.get(editor), editor.getColorValue());
 
 114   private Map CheckBoxes = new HashMap();
 
 115   private SelectionListener CheckBoxListener = new SelectionListener() {
 
 116     public void widgetDefaultSelected(SelectionEvent e) {
 
 118     public void widgetSelected(SelectionEvent e) {
 
 119       Button button = (Button) e.widget;
 
 120       OverlayStore.setValue((String) CheckBoxes.get(button), button.getSelection());
 
 124   private List SyntaxColorList;
 
 125   /** The ColorEditor that choose the foreground color. */
 
 126   private ColorEditor SyntaxForegroundColorEditor;
 
 127   private Button BoldCheckBox;
 
 128   private Button ItalicCheckBox;
 
 129   private Button UnderlineCheckBox;
 
 130   private FileFieldEditor userdefPHPSyntaxFileFFE;
 
 131   // private BooleanFieldEditor showLineNumber;
 
 132   private IntegerFieldEditor formatterTabSize;
 
 133   private BooleanFieldEditor spacesForTabs;
 
 135   public PHPSyntaxEditorPreferencePage() {
 
 136     setDescription(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.description")); //$NON-NLS-1$
 
 137     setPreferenceStore(PHPeclipsePlugin.getDefault().getPreferenceStore());
 
 138     OverlayStore = new OverlayPreferenceStore(getPreferenceStore(), Keys);
 
 141   public void init(IWorkbench workbench) {
 
 144   public void createControl(Composite parent) {
 
 145     super.createControl(parent);
 
 148   private void handleSyntaxColorListSelection() {
 
 149     int i = SyntaxColorList.getSelectionIndex();
 
 150     String key = SyntaxColorListModel[i][1];
 
 151     RGB rgb = PreferenceConverter.getColor(OverlayStore, key);
 
 152     SyntaxForegroundColorEditor.setColorValue(rgb);
 
 153     BoldCheckBox.setSelection(OverlayStore.getBoolean(key + "_bold"));
 
 154     ItalicCheckBox.setSelection(OverlayStore.getBoolean(key + "_italic"));
 
 155     UnderlineCheckBox.setSelection(OverlayStore.getBoolean(key + "_underline"));
 
 159    * Create the group of options for other parameters (background color for example).
 
 160    * @param parent the parent component
 
 162   private void backgroundOptionPage(Composite parent) {
 
 163     Label label = new Label(parent, SWT.LEFT);
 
 164     label.setText(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.color")); //$NON-NLS-1$
 
 165     GridData gd = new GridData();
 
 166     gd.horizontalAlignment = GridData.BEGINNING;
 
 167     label.setLayoutData(gd);
 
 168 //    final ColorEditor syntaxBackgroundColorEditor = new ColorEditor(parent);
 
 169 //    RGB rgb = PreferenceConverter.getColor(OverlayStore, IPreferenceConstants.PHP_EDITOR_BACKGROUND);
 
 170 //    syntaxBackgroundColorEditor.setColorValue(rgb);
 
 171 //    Button backgroundColorButton = syntaxBackgroundColorEditor.getButton();
 
 172 //    gd = new GridData(GridData.FILL_HORIZONTAL);
 
 173 //    gd.horizontalAlignment = GridData.BEGINNING;
 
 174 //    backgroundColorButton.setLayoutData(gd);
 
 175 //    backgroundColorButton.addSelectionListener(new SelectionListener() {
 
 176 //      public void widgetDefaultSelected(SelectionEvent e) {
 
 179 //      public void widgetSelected(SelectionEvent e) {
 
 180 //        PreferenceConverter.setValue(OverlayStore, IPreferenceConstants.PHP_EDITOR_BACKGROUND, syntaxBackgroundColorEditor.getColorValue());
 
 186    * Create the group of options for the syntax parameters.
 
 187    * @param parent the parent component
 
 190   private Control createSyntaxPage(Composite parent) {
 
 192     Composite colorComposite = new Composite(parent, SWT.NULL);
 
 193     colorComposite.setLayout(new GridLayout());
 
 195     Label label = new Label(colorComposite, SWT.LEFT);
 
 196     label.setText(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.syntax")); //$NON-NLS-1$
 
 197     label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 
 199     Composite editorComposite = new Composite(colorComposite, SWT.NONE);
 
 200     GridLayout layout = new GridLayout();
 
 201     layout.numColumns = 2;
 
 202     layout.marginHeight = 0;
 
 203     layout.marginWidth = 0;
 
 204     editorComposite.setLayout(layout);
 
 205     GridData gd = new GridData(GridData.FILL_BOTH);
 
 206     editorComposite.setLayoutData(gd);
 
 208     SyntaxColorList = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
 
 209     gd = new GridData(GridData.FILL_BOTH);
 
 210     gd.heightHint = convertHeightInCharsToPixels(5);
 
 211     SyntaxColorList.setLayoutData(gd);
 
 213     Composite stylesComposite = new Composite(editorComposite, SWT.NONE);
 
 214     layout = new GridLayout();
 
 215     layout.marginHeight = 0;
 
 216     layout.marginWidth = 0;
 
 217     layout.numColumns = 2;
 
 218     stylesComposite.setLayout(layout);
 
 219     stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
 
 221     label = new Label(stylesComposite, SWT.LEFT);
 
 222     label.setText(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.color")); //$NON-NLS-1$
 
 224     gd.horizontalAlignment = GridData.BEGINNING;
 
 225     label.setLayoutData(gd);
 
 227     SyntaxForegroundColorEditor = new ColorEditor(stylesComposite);
 
 228     Button foregroundColorButton = SyntaxForegroundColorEditor.getButton();
 
 229     gd = new GridData(GridData.FILL_HORIZONTAL);
 
 230     gd.horizontalAlignment = GridData.BEGINNING;
 
 231     foregroundColorButton.setLayoutData(gd);
 
 233     BoldCheckBox = new Button(stylesComposite, SWT.CHECK);
 
 234     BoldCheckBox.setText(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.bold")); //$NON-NLS-1$
 
 235     gd = new GridData(GridData.FILL_HORIZONTAL);
 
 236     gd.horizontalAlignment = GridData.BEGINNING;
 
 237     gd.horizontalSpan = 2;
 
 238     BoldCheckBox.setLayoutData(gd);
 
 240     ItalicCheckBox = new Button(stylesComposite, SWT.CHECK);
 
 241     ItalicCheckBox.setText(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.italic")); //$NON-NLS-1$
 
 242     ItalicCheckBox.setEnabled(false);
 
 243     gd = new GridData(GridData.FILL_HORIZONTAL);
 
 244     gd.horizontalAlignment = GridData.BEGINNING;
 
 245     gd.horizontalSpan = 2;
 
 246     ItalicCheckBox.setLayoutData(gd);
 
 248     UnderlineCheckBox = new Button(stylesComposite, SWT.CHECK);
 
 249     UnderlineCheckBox.setText(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.underline")); //$NON-NLS-1$
 
 250     UnderlineCheckBox.setEnabled(false);
 
 251     gd = new GridData(GridData.FILL_HORIZONTAL);
 
 252     gd.horizontalAlignment = GridData.BEGINNING;
 
 253     gd.horizontalSpan = 2;
 
 254     UnderlineCheckBox.setLayoutData(gd);
 
 256     Composite customSyntaxComposite = new Composite(colorComposite, SWT.NONE);
 
 257     layout = new GridLayout();
 
 258     layout.marginHeight = 0;
 
 259     layout.marginWidth = 0;
 
 260     layout.numColumns = 3;
 
 261     stylesComposite.setLayout(layout);
 
 262     stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
 
 264     userdefPHPSyntaxFileFFE =
 
 266         IPreferenceConstants.PHP_USERDEF_XMLFILE,
 
 267         PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.syntaxdialog"),
 
 269     userdefPHPSyntaxFileFFE.setPreferencePage(this);
 
 270     userdefPHPSyntaxFileFFE.setPreferenceStore(getPreferenceStore());
 
 271     userdefPHPSyntaxFileFFE.load();
 
 273     SyntaxColorList.addSelectionListener(new SelectionListener() {
 
 274       public void widgetDefaultSelected(SelectionEvent e) {
 
 277       public void widgetSelected(SelectionEvent e) {
 
 278         handleSyntaxColorListSelection();
 
 282     foregroundColorButton.addSelectionListener(new SelectionListener() {
 
 283       public void widgetDefaultSelected(SelectionEvent e) {
 
 286       public void widgetSelected(SelectionEvent e) {
 
 287         int i = SyntaxColorList.getSelectionIndex();
 
 288         String key = SyntaxColorListModel[i][1];
 
 290         PreferenceConverter.setValue(OverlayStore, key, SyntaxForegroundColorEditor.getColorValue());
 
 293     BoldCheckBox.addSelectionListener(new SelectionListener() {
 
 294       public void widgetDefaultSelected(SelectionEvent e) {
 
 297       public void widgetSelected(SelectionEvent e) {
 
 298         int i = SyntaxColorList.getSelectionIndex();
 
 299         String key = SyntaxColorListModel[i][1];
 
 300         OverlayStore.setValue(key + "_bold", BoldCheckBox.getSelection());
 
 304     ItalicCheckBox.addSelectionListener(new SelectionListener() {
 
 305       public void widgetDefaultSelected(SelectionEvent e) {
 
 308       public void widgetSelected(SelectionEvent e) {
 
 309         int i = SyntaxColorList.getSelectionIndex();
 
 310         String key = SyntaxColorListModel[i][1];
 
 311         OverlayStore.setValue(key + "_italic", ItalicCheckBox.getSelection());
 
 315     UnderlineCheckBox.addSelectionListener(new SelectionListener() {
 
 316       public void widgetDefaultSelected(SelectionEvent e) {
 
 319       public void widgetSelected(SelectionEvent e) {
 
 320         int i = SyntaxColorList.getSelectionIndex();
 
 321         String key = SyntaxColorListModel[i][1];
 
 322         OverlayStore.setValue(key + "_underline", UnderlineCheckBox.getSelection());
 
 325     return colorComposite;
 
 328   private void initializeViewerColors(ISourceViewer viewer) {
 
 330     IPreferenceStore store = OverlayStore;
 
 333       StyledText styledText = viewer.getTextWidget();
 
 337   private Color createColor(IPreferenceStore store, String key, Display display) {
 
 339     if (store.contains(key)) {
 
 340       if (store.isDefault(key))
 
 341         rgb = PreferenceConverter.getDefaultColor(store, key);
 
 343         rgb = PreferenceConverter.getColor(store, key);
 
 345         return new Color(display, rgb);
 
 350   private static void setEnabled(Control control, boolean enable) {
 
 351     control.setEnabled(enable);
 
 352     if (control instanceof Composite) {
 
 353       Composite composite = (Composite) control;
 
 354       Control[] children = composite.getChildren();
 
 355       for (int i = 0; i < children.length; i++)
 
 356         setEnabled(children[i], enable);
 
 360   private static void indent(Control control) {
 
 361     GridData gridData = new GridData();
 
 362     gridData.horizontalIndent = 20;
 
 363     control.setLayoutData(gridData);
 
 366   private static void createDependency(final Button master, final Control slave) {
 
 368     master.addSelectionListener(new SelectionListener() {
 
 369       public void widgetSelected(SelectionEvent e) {
 
 370         slave.setEnabled(master.getSelection());
 
 373       public void widgetDefaultSelected(SelectionEvent e) {
 
 378   protected Control createContents(Composite parent) {
 
 380     OverlayStore.start();
 
 381     //Create overall composite
 
 382     Composite composite = new Composite(parent, SWT.NONE);
 
 383     GridLayout layout = new GridLayout();
 
 384     layout.marginHeight = 0;
 
 385     layout.marginWidth = 0;
 
 386     composite.setLayout(layout);
 
 387     Composite syntaxComposite = new Composite(composite, SWT.NULL);
 
 388     syntaxComposite.setLayout(new GridLayout());
 
 389     layout = new GridLayout();
 
 390     layout.numColumns = 3;
 
 391     Group syntaxGroup = new Group(syntaxComposite, SWT.NONE);
 
 392     syntaxGroup.setText(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.foreground"));
 
 393     syntaxGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 
 394     syntaxGroup.setLayout(layout);
 
 395     createSyntaxPage(syntaxGroup);
 
 397     Composite backgroundOptions = new Composite(composite,SWT.NULL);
 
 398     backgroundOptions.setLayout(new GridLayout());
 
 399     layout = new GridLayout();
 
 400     layout.numColumns = 3;
 
 401     Group backgroundOptionsGroup = new Group(backgroundOptions,SWT.NONE);
 
 402     backgroundOptionsGroup.setText(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.background"));
 
 403     backgroundOptionsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 
 404     backgroundOptionsGroup.setLayout(layout);
 
 405     backgroundOptionPage(backgroundOptionsGroup);
 
 410 //    showLineNumber = new BooleanFieldEditor(PHPeclipsePlugin.LINE_NUMBER_RULER, 
 
 411 //    "Show line numbers", composite);
 
 412 //    showLineNumber.setPreferencePage(this);
 
 413 //    showLineNumber.setPreferenceStore(getPreferenceStore());
 
 414 //    showLineNumber.load();
 
 416 //    formatterTabSize = new IntegerFieldEditor(PHPeclipsePlugin.FORMATTER_TAB_SIZE, 
 
 417 //    "Displayed tab width", composite, 3);
 
 418 //    formatterTabSize.setPreferencePage(this);
 
 419 //    formatterTabSize.setPreferenceStore(getPreferenceStore());
 
 420 //    formatterTabSize.load();
 
 422 //    spacesForTabs = new BooleanFieldEditor(PHPeclipsePlugin.SPACES_FOR_TABS, 
 
 423 //    "Spaces for Tabs", composite);
 
 424 //    spacesForTabs.setPreferencePage(this);
 
 425 //    spacesForTabs.setPreferenceStore(getPreferenceStore());
 
 426 //    spacesForTabs.load();
 
 430   private void initialize() {
 
 432     for (int i = 0; i < SyntaxColorListModel.length; i++)
 
 433       SyntaxColorList.add(SyntaxColorListModel[i][0]);
 
 434     SyntaxColorList.getDisplay().asyncExec(new Runnable() {
 
 436         if (SyntaxColorList != null && !SyntaxColorList.isDisposed()) {
 
 437           SyntaxColorList.select(0);
 
 438           handleSyntaxColorListSelection();
 
 444   private void initializeFields() {
 
 446     Iterator e = ColorButtons.keySet().iterator();
 
 447     while (e.hasNext()) {
 
 448       ColorEditor c = (ColorEditor) e.next();
 
 449       String key = (String) ColorButtons.get(c);
 
 450       RGB rgb = PreferenceConverter.getColor(OverlayStore, key);
 
 451       c.setColorValue(rgb);
 
 454     e = CheckBoxes.keySet().iterator();
 
 455     while (e.hasNext()) {
 
 456       Button b = (Button) e.next();
 
 457       String key = (String) CheckBoxes.get(b);
 
 458       b.setSelection(OverlayStore.getBoolean(key));
 
 462   public boolean performOk() {
 
 463     OverlayStore.propagate();
 
 464     IPreferenceStore store = getPreferenceStore();
 
 465     PHPeclipsePlugin.getDefault().savePluginPreferences();
 
 466     userdefPHPSyntaxFileFFE.store();
 
 467    // showLineNumber.store();
 
 468     spacesForTabs.store();
 
 469     formatterTabSize.store();
 
 473   protected void performDefaults() {
 
 474     OverlayStore.loadDefaults();
 
 476     handleSyntaxColorListSelection();
 
 477     userdefPHPSyntaxFileFFE.loadDefault();
 
 478   //  showLineNumber.loadDefault();
 
 479     spacesForTabs.loadDefault();
 
 480   //  showLineNumber.loadDefault();
 
 481     formatterTabSize.loadDefault();
 
 482     super.performDefaults();
 
 485   public void dispose() {
 
 486     if (OverlayStore != null) {
 
 493   private Control addColorButton(Composite composite, String label, String key, int indentation) {
 
 494     Label labelControl = new Label(composite, SWT.NONE);
 
 495     labelControl.setText(label);
 
 496     GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
 
 497     gd.horizontalIndent = indentation;
 
 498     labelControl.setLayoutData(gd);
 
 499     ColorEditor editor = new ColorEditor(composite);
 
 500     Button button = editor.getButton();
 
 501     button.setData(editor);
 
 502     gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
 
 503     button.setLayoutData(gd);
 
 504     button.addSelectionListener(ColorButtonListener);
 
 505     ColorButtons.put(editor, key);
 
 509   private Button addCheckBox(Composite parent, String label, String key, int indentation) {
 
 510     Button checkBox = new Button(parent, SWT.CHECK);
 
 511     checkBox.setText(label);
 
 512     GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
 
 513     gd.horizontalIndent = indentation;
 
 514     gd.horizontalSpan = 2;
 
 515     checkBox.setLayoutData(gd);
 
 516     checkBox.addSelectionListener(CheckBoxListener);
 
 517     CheckBoxes.put(checkBox, key);
 
 521   private void updateStatus(IStatus status) {
 
 525    * @deprecated Inline to avoid reference to preference page
 
 527   public static boolean indicateQuixFixableProblems() {
 
 528     //          return PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_CORRECTION_INDICATION);
 
 533    * @deprecated Inline to avoid reference to preference page
 
 535   static public boolean synchronizeOutlineOnCursorMove() {
 
 536     //          return PreferenceConstants.getPreferenceStore().getBoolean(PreferenceConstants.EDITOR_SYNC_OUTLINE_ON_CURSOR_MOVE);