Add field for external parser to pref page
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / PHPSyntaxEditorPreferencePage.java
index 22b06ff..60d95e2 100644 (file)
@@ -7,8 +7,8 @@ import java.util.Map;
 import net.sourceforge.phpeclipse.preferences.ColorEditor;
 import net.sourceforge.phpeclipse.preferences.OverlayPreferenceStore;
 import net.sourceforge.phpeclipse.preferences.PHPPreferencesMessages;
+
 import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.preference.BooleanFieldEditor;
 import org.eclipse.jface.preference.FileFieldEditor;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferenceConverter;
@@ -75,7 +75,8 @@ public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWo
       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_DEFAULT_BOLD),
       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_DEFAULT_ITALIC),
       new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IPreferenceConstants.PHP_DEFAULT_UNDERLINE),
-      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_USERDEF_XMLFILE)};
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_USERDEF_XMLFILE),
+      new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, IPreferenceConstants.PHP_EDITOR_BACKGROUND)};
 
   private final String[][] SyntaxColorListModel =
     new String[][] {
@@ -118,6 +119,7 @@ public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWo
   };
 
   private List SyntaxColorList;
+  /** The ColorEditor that choose the foreground color. */
   private ColorEditor SyntaxForegroundColorEditor;
   private Button BoldCheckBox;
   private Button ItalicCheckBox;
@@ -147,6 +149,38 @@ public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWo
     UnderlineCheckBox.setSelection(OverlayStore.getBoolean(key + "_underline"));
   }
 
+  /**
+   * Create the group of options for other parameters (background color for example).
+   * @param parent the parent component
+   */
+  private void backgroundOptionPage(Composite parent) {
+    Label label = new Label(parent, SWT.LEFT);
+    label.setText(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.color")); //$NON-NLS-1$
+    GridData gd = new GridData();
+    gd.horizontalAlignment = GridData.BEGINNING;
+    label.setLayoutData(gd);
+    final ColorEditor syntaxBackgroundColorEditor = new ColorEditor(parent);
+    RGB rgb = PreferenceConverter.getColor(OverlayStore, IPreferenceConstants.PHP_EDITOR_BACKGROUND);
+    syntaxBackgroundColorEditor.setColorValue(rgb);
+    Button backgroundColorButton = syntaxBackgroundColorEditor.getButton();
+    gd = new GridData(GridData.FILL_HORIZONTAL);
+    gd.horizontalAlignment = GridData.BEGINNING;
+    backgroundColorButton.setLayoutData(gd);
+    backgroundColorButton.addSelectionListener(new SelectionListener() {
+      public void widgetDefaultSelected(SelectionEvent e) {
+        // do nothing
+      }
+      public void widgetSelected(SelectionEvent e) {
+        PreferenceConverter.setValue(OverlayStore, IPreferenceConstants.PHP_EDITOR_BACKGROUND, syntaxBackgroundColorEditor.getColorValue());
+      }
+    });
+  }
+
+  /**
+   * Create the group of options for the syntax parameters.
+   * @param parent the parent component
+   * @return
+   */
   private Control createSyntaxPage(Composite parent) {
 
     Composite colorComposite = new Composite(parent, SWT.NULL);
@@ -196,7 +230,7 @@ public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWo
     gd.horizontalAlignment = GridData.BEGINNING;
     gd.horizontalSpan = 2;
     BoldCheckBox.setLayoutData(gd);
-    
+
     ItalicCheckBox = new Button(stylesComposite, SWT.CHECK);
     ItalicCheckBox.setText(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.italic")); //$NON-NLS-1$
     ItalicCheckBox.setEnabled(false);
@@ -204,7 +238,7 @@ public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWo
     gd.horizontalAlignment = GridData.BEGINNING;
     gd.horizontalSpan = 2;
     ItalicCheckBox.setLayoutData(gd);
-    
+
     UnderlineCheckBox = new Button(stylesComposite, SWT.CHECK);
     UnderlineCheckBox.setText(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.underline")); //$NON-NLS-1$
     UnderlineCheckBox.setEnabled(false);
@@ -353,7 +387,17 @@ public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWo
     syntaxGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
     syntaxGroup.setLayout(layout);
     createSyntaxPage(syntaxGroup);
-    
+
+    Composite backgroundOptions = new Composite(composite,SWT.NULL);
+    backgroundOptions.setLayout(new GridLayout());
+    layout = new GridLayout();
+    layout.numColumns = 3;
+    Group backgroundOptionsGroup = new Group(backgroundOptions,SWT.NONE);
+    backgroundOptionsGroup.setText(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.background"));
+    backgroundOptionsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+    backgroundOptionsGroup.setLayout(layout);
+    backgroundOptionPage(backgroundOptionsGroup);
+
     initialize();
     return composite;
   }