--- /dev/null
+package net.sourceforge.phpeclipse;
+
+import java.util.ArrayList;
+
+import org.eclipse.jface.preference.BooleanFieldEditor;
+import org.eclipse.jface.preference.DirectoryFieldEditor;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.jface.preference.RadioGroupFieldEditor;
+import org.eclipse.jface.preference.StringFieldEditor;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+import net.sourceforge.phpeclipse.preferences.PHPPreferencesMessages;
+
+public class PHPEclipseBasePreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
+
+ private SelectionListener SelectionListener;
+ private ModifyListener ModifyListener;
+ private ModifyListener TextModifyListener;
+
+ private ArrayList CheckBoxes = new ArrayList();
+ private ArrayList ComboBoxes = new ArrayList();
+ private ArrayList TextBoxes = new ArrayList();
+ private ArrayList RadioButtons = new ArrayList();
+
+ StringFieldEditor localHostSFE;
+ DirectoryFieldEditor documentRootDFE;
+ BooleanFieldEditor externalBrowserBFE;
+ StringFieldEditor externalBrowserSFE;
+ StringFieldEditor apacheStartSFE;
+ StringFieldEditor apacheStopSFE;
+ StringFieldEditor apacheRestartSFE;
+ StringFieldEditor mySQLCommandSFE;
+ RadioGroupFieldEditor chooseParser;
+ BooleanFieldEditor parseOnSave;
+
+ public PHPEclipseBasePreferencePage() {
+ super();
+ setPreferenceStore(PHPeclipsePlugin.getDefault().getPreferenceStore());
+ setDescription(PHPPreferencesMessages.getString("PHPBasePreferencePage.description")); //$NON-NLS-1$
+ }
+ public void init(IWorkbench workbench) {
+ }
+ protected void performDefaults() {
+ localHostSFE.loadDefault();
+ documentRootDFE.loadDefault();
+ externalBrowserBFE.loadDefault();
+ externalBrowserSFE.loadDefault();
+ apacheStartSFE.loadDefault();
+ apacheStopSFE.loadDefault();
+ apacheRestartSFE.loadDefault();
+ mySQLCommandSFE.loadDefault();
+ chooseParser.loadDefault();
+ parseOnSave.loadDefault();
+ super.performDefaults();
+ }
+
+ public boolean performOk() {
+ localHostSFE.store();
+ documentRootDFE.store();
+ externalBrowserBFE.store();
+ externalBrowserSFE.store();
+ apacheStartSFE.store();
+ apacheStopSFE.store();
+ apacheRestartSFE.store();
+ mySQLCommandSFE.store();
+ chooseParser.store();
+ parseOnSave.store();
+ return super.performOk();
+ }
+
+ protected Control createContents(Composite parent) {
+ initializeDialogUnits(parent);
+ final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
+ Composite composite = new Composite(parent, SWT.LEFT);
+ composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ composite.setLayout(new GridLayout());
+ //Create Websettings
+ Composite webSettingsComposite = new Composite(composite, SWT.NONE);
+ webSettingsComposite.setLayout(new GridLayout());
+ webSettingsComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ Group webSettingsGroup = new Group(webSettingsComposite, SWT.NONE);
+ webSettingsGroup.setText(PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup"));
+ webSettingsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ webSettingsGroup.setLayout(new GridLayout());
+ localHostSFE =
+ new StringFieldEditor(
+ IPreferenceConstants.LOCALHOST_PREF,
+ PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.localhost"),
+ webSettingsGroup);
+ localHostSFE.setPreferencePage(this);
+ localHostSFE.setPreferenceStore(getPreferenceStore());
+ localHostSFE.load();
+ documentRootDFE =
+ new DirectoryFieldEditor(
+ IPreferenceConstants.DOCUMENTROOT_PREF,
+ PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.docroot"),
+ webSettingsGroup);
+ documentRootDFE.setPreferencePage(this);
+ documentRootDFE.setPreferenceStore(getPreferenceStore());
+ documentRootDFE.load();
+ externalBrowserBFE =
+ new BooleanFieldEditor(
+ IPreferenceConstants.USE_EXTERNAL_BROWSER_PREF,
+ PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.useexternal"),
+ webSettingsGroup);
+ externalBrowserBFE.setPreferencePage(this);
+ externalBrowserBFE.setPreferenceStore(getPreferenceStore());
+ externalBrowserBFE.load();
+ externalBrowserSFE =
+ new StringFieldEditor(
+ IPreferenceConstants.EXTERNAL_BROWSER_PREF,
+ PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.browser"),
+ webSettingsGroup);
+ externalBrowserSFE.setPreferencePage(this);
+ externalBrowserSFE.setPreferenceStore(getPreferenceStore());
+ externalBrowserSFE.load();
+
+ //Create apache
+ Composite apacheSettingsComposite = new Composite(composite, SWT.NULL);
+ apacheSettingsComposite.setLayout(new GridLayout());
+ apacheSettingsComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ Group apacheSettingsGroup = new Group(apacheSettingsComposite, SWT.NONE);
+ apacheSettingsGroup.setText(PHPPreferencesMessages.getString("PHPBasePreferencePage.apacheGroup"));
+ apacheSettingsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ apacheSettingsGroup.setLayout(new GridLayout());
+ apacheStartSFE =
+ new StringFieldEditor(
+ IPreferenceConstants.APACHE_START_PREF,
+ PHPPreferencesMessages.getString("PHPBasePreferencePage.apacheGroup.start"),
+ apacheSettingsGroup);
+ apacheStartSFE.setPreferencePage(this);
+ apacheStartSFE.setPreferenceStore(getPreferenceStore());
+ apacheStartSFE.load();
+ apacheStopSFE =
+ new StringFieldEditor(
+ IPreferenceConstants.APACHE_STOP_PREF,
+ PHPPreferencesMessages.getString("PHPBasePreferencePage.apacheGroup.stop"),
+ apacheSettingsGroup);
+ apacheStopSFE.setPreferencePage(this);
+ apacheStopSFE.setPreferenceStore(getPreferenceStore());
+ apacheStopSFE.load();
+ apacheRestartSFE =
+ new StringFieldEditor(
+ IPreferenceConstants.APACHE_RESTART_PREF,
+ PHPPreferencesMessages.getString("PHPBasePreferencePage.apacheGroup.restart"),
+ apacheSettingsGroup);
+ apacheRestartSFE.setPreferencePage(this);
+ apacheRestartSFE.setPreferenceStore(getPreferenceStore());
+ apacheRestartSFE.load();
+
+ //Create mySQL
+ Composite mySQLSettingsComposite = new Composite(composite, SWT.NULL);
+ mySQLSettingsComposite.setLayout(new GridLayout());
+ mySQLSettingsComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ Group mySQLSettingsGroup = new Group(mySQLSettingsComposite, SWT.NONE);
+ mySQLSettingsGroup.setText(PHPPreferencesMessages.getString("PHPBasePreferencePage.mySQLGroup"));
+ mySQLSettingsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ mySQLSettingsGroup.setLayout(new GridLayout());
+ mySQLCommandSFE =
+ new StringFieldEditor(
+ IPreferenceConstants.MYSQL_PREF,
+ PHPPreferencesMessages.getString("PHPBasePreferencePage.mySQLGroup.command"),
+ mySQLSettingsGroup);
+ mySQLCommandSFE.setPreferencePage(this);
+ mySQLCommandSFE.setPreferenceStore(getPreferenceStore());
+ mySQLCommandSFE.load();
+
+ //Create parser settings composite
+ Composite parserSettingsComposite = new Composite(composite, SWT.NONE);
+ parserSettingsComposite.setLayout(new GridLayout());
+ parserSettingsComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ Group parserSettingsGroup = new Group(parserSettingsComposite, SWT.NONE);
+ parserSettingsGroup.setText(PHPPreferencesMessages.getString("PHPBasePreferencePage.parsers"));
+ parserSettingsGroup.setLayout(new GridLayout());
+ parserSettingsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ chooseParser =
+ new RadioGroupFieldEditor(
+ IPreferenceConstants.PHP_PARSER_DEFAULT,
+ PHPPreferencesMessages.getString("PHPBasePreferencePage.parsers.choose"),
+ 1,
+ new String[][] {
+ { PHPPreferencesMessages.getString("PHPBasePreferencePage.parsers.internal"), IPreferenceConstants.PHP_INTERNAL_PARSER },
+ {
+ PHPPreferencesMessages.getString("PHPBasePreferencePage.parsers.external"), IPreferenceConstants.PHP_EXTERNAL_PARSER }
+ }, parserSettingsGroup);
+ chooseParser.setPreferencePage(this);
+ chooseParser.setPreferenceStore(getPreferenceStore());
+ chooseParser.load();
+ parseOnSave = new BooleanFieldEditor(PHPeclipsePlugin.PHP_PARSE_ON_SAVE, "&Parse automatically on save", parserSettingsGroup);
+ parseOnSave.setPreferencePage(this);
+ parseOnSave.setPreferenceStore(getPreferenceStore());
+ parseOnSave.load();
+
+ return composite;
+ }
+}