package net.sourceforge.phpeclipse; import java.util.ArrayList; import net.sourceforge.phpeclipse.preferences.PHPPreferencesMessages; 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.layout.RowLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Group; import org.eclipse.swt.widgets.Label; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; 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 showExternalPreviewBFE; BooleanFieldEditor externalBrowserBFE; StringFieldEditor externalBrowserSFE; StringFieldEditor apacheStartSFE; StringFieldEditor apacheStopSFE; StringFieldEditor apacheRestartSFE; StringFieldEditor mySQLCommandSFE; StringFieldEditor phpRunSFE; RadioGroupFieldEditor chooseParser; StringFieldEditor externalParserSFE; 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(); showExternalPreviewBFE.loadDefault(); externalBrowserBFE.loadDefault(); externalBrowserSFE.loadDefault(); apacheStartSFE.loadDefault(); apacheStopSFE.loadDefault(); apacheRestartSFE.loadDefault(); mySQLCommandSFE.loadDefault(); phpRunSFE.loadDefault(); chooseParser.loadDefault(); externalParserSFE.loadDefault(); parseOnSave.loadDefault(); super.performDefaults(); } public boolean performOk() { localHostSFE.store(); documentRootDFE.store(); showExternalPreviewBFE.store(); externalBrowserBFE.store(); externalBrowserSFE.store(); apacheStartSFE.store(); apacheStopSFE.store(); apacheRestartSFE.store(); mySQLCommandSFE.store(); phpRunSFE.store(); chooseParser.store(); externalParserSFE.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)); showExternalPreviewBFE = new BooleanFieldEditor( IPreferenceConstants.SHOW_EXTERNAL_PREVIEW_PREF, PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.showexternalpreview"), webSettingsComposite); showExternalPreviewBFE.setPreferencePage(this); showExternalPreviewBFE.setPreferenceStore(getPreferenceStore()); showExternalPreviewBFE.load(); Group webSettingsGroup = new Group(webSettingsComposite, SWT.NONE); webSettingsGroup.setText(PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup")); GridLayout gridLayout = new GridLayout(); // gridLayout.numColumns = 3; GridData gridData = new GridData(GridData.FILL_HORIZONTAL); webSettingsGroup.setLayoutData(gridData); webSettingsGroup.setLayout(gridLayout); // new Label(webSettingsGroup, SWT.NONE); externalBrowserBFE = new BooleanFieldEditor( IPreferenceConstants.USE_EXTERNAL_BROWSER_PREF, PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.useexternal"), webSettingsGroup); externalBrowserBFE.setPreferencePage(this); externalBrowserBFE.setPreferenceStore(getPreferenceStore()); externalBrowserBFE.load(); new Label(webSettingsGroup, SWT.NONE); new Label(webSettingsGroup, SWT.NONE); // new Label(webSettingsGroup, SWT.NONE); externalBrowserSFE = new StringFieldEditor( IPreferenceConstants.EXTERNAL_BROWSER_PREF, PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.browser"), webSettingsGroup); externalBrowserSFE.setPreferencePage(this); externalBrowserSFE.setPreferenceStore(getPreferenceStore()); externalBrowserSFE.load(); new Label(webSettingsGroup, SWT.NONE); localHostSFE = new StringFieldEditor( IPreferenceConstants.LOCALHOST_PREF, PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.localhost"), webSettingsGroup); localHostSFE.setPreferencePage(this); localHostSFE.setPreferenceStore(getPreferenceStore()); localHostSFE.load(); new Label(webSettingsGroup, SWT.NONE); documentRootDFE = new DirectoryFieldEditor( IPreferenceConstants.DOCUMENTROOT_PREF, PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.docroot"), webSettingsGroup); documentRootDFE.setPreferencePage(this); documentRootDFE.setPreferenceStore(getPreferenceStore()); documentRootDFE.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(); phpRunSFE = new StringFieldEditor( IPreferenceConstants.PHP_RUN_PREF, PHPPreferencesMessages.getString("PHPBasePreferencePage.console.php"), apacheSettingsGroup); phpRunSFE.setPreferencePage(this); phpRunSFE.setPreferenceStore(getPreferenceStore()); phpRunSFE.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(); //create a copmposte just for the StringEditor - makes layout simpler Composite externalParserCompo = new Composite(parserSettingsGroup, SWT.NONE); externalParserSFE = new StringFieldEditor( IPreferenceConstants.EXTERNAL_PARSER_PREF, PHPPreferencesMessages.getString("PHPBasePreferencePage.parsers.extcommand"), externalParserCompo /*parserSettingsGroup*/ ); externalParserSFE.setPreferencePage(this); externalParserSFE.setPreferenceStore(getPreferenceStore()); externalParserSFE.load(); parseOnSave = new BooleanFieldEditor( PHPeclipsePlugin.PHP_PARSE_ON_SAVE, PHPPreferencesMessages.getString("PHPBasePreferencePage.parsers.pos"), parserSettingsGroup); parseOnSave.setPreferencePage(this); parseOnSave.setPreferenceStore(getPreferenceStore()); parseOnSave.load(); return composite; } }