Started with PHP/HTML Formatter menu => doesn't work right now
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / PHPSyntaxEditorPreferencePage.java
index 55c03c5..ecf3654 100644 (file)
@@ -7,10 +7,12 @@ 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.IntegerFieldEditor;
 import org.eclipse.jface.preference.PreferenceConverter;
 import org.eclipse.jface.preference.PreferencePage;
 import org.eclipse.jface.text.source.ISourceViewer;
@@ -75,7 +77,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,11 +121,15 @@ 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;
   private Button UnderlineCheckBox;
   private FileFieldEditor userdefPHPSyntaxFileFFE;
+  private BooleanFieldEditor showLineNumber;
+  private IntegerFieldEditor formatterTabSize;
+  private BooleanFieldEditor spacesForTabs;
 
   public PHPSyntaxEditorPreferencePage() {
     setDescription(PHPPreferencesMessages.getString("PHPEditorSyntaxPreferencePage.description")); //$NON-NLS-1$
@@ -147,6 +154,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);
@@ -354,7 +393,36 @@ public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWo
     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();
+    
+   
+    showLineNumber = new BooleanFieldEditor(PHPeclipsePlugin.LINE_NUMBER_RULER, 
+    "Show line numbers", composite);
+    showLineNumber.setPreferencePage(this);
+    showLineNumber.setPreferenceStore(getPreferenceStore());
+    showLineNumber.load();
+    
+//    formatterTabSize = new IntegerFieldEditor(PHPeclipsePlugin.FORMATTER_TAB_SIZE, 
+//    "Displayed tab width", composite, 3);
+//    formatterTabSize.setPreferencePage(this);
+//    formatterTabSize.setPreferenceStore(getPreferenceStore());
+//    formatterTabSize.load();
+//    
+//    spacesForTabs = new BooleanFieldEditor(PHPeclipsePlugin.SPACES_FOR_TABS, 
+//    "Spaces for Tabs", composite);
+//    spacesForTabs.setPreferencePage(this);
+//    spacesForTabs.setPreferenceStore(getPreferenceStore());
+//    spacesForTabs.load();
     return composite;
   }
 
@@ -395,6 +463,9 @@ public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWo
     IPreferenceStore store = getPreferenceStore();
     PHPeclipsePlugin.getDefault().savePluginPreferences();
     userdefPHPSyntaxFileFFE.store();
+    showLineNumber.store();
+    spacesForTabs.store();
+    formatterTabSize.store();
     return true;
   }
 
@@ -403,6 +474,10 @@ public class PHPSyntaxEditorPreferencePage extends PreferencePage implements IWo
     initializeFields();
     handleSyntaxColorListSelection();
     userdefPHPSyntaxFileFFE.loadDefault();
+    showLineNumber.loadDefault();
+    spacesForTabs.loadDefault();
+    showLineNumber.loadDefault();
+    formatterTabSize.loadDefault();
     super.performDefaults();
   }