1 package net.sourceforge.phpeclipse;
 
   3 import net.sourceforge.phpdt.internal.ui.util.PHPFileUtil;
 
   4 import net.sourceforge.phpeclipse.preferences.PHPPreferencesMessages;
 
   6 import org.eclipse.jface.preference.BooleanFieldEditor;
 
   7 import org.eclipse.jface.preference.FileFieldEditor;
 
   8 import org.eclipse.jface.preference.IPreferenceStore;
 
   9 import org.eclipse.jface.preference.PreferencePage;
 
  10 import org.eclipse.jface.preference.StringFieldEditor;
 
  11 import org.eclipse.swt.SWT;
 
  12 import org.eclipse.swt.layout.GridData;
 
  13 import org.eclipse.swt.layout.GridLayout;
 
  14 import org.eclipse.swt.widgets.Composite;
 
  15 import org.eclipse.swt.widgets.Control;
 
  16 import org.eclipse.swt.widgets.Group;
 
  17 import org.eclipse.swt.widgets.Label;
 
  18 import org.eclipse.ui.IWorkbench;
 
  19 import org.eclipse.ui.IWorkbenchPreferencePage;
 
  21 public class PHPEclipseBasePreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
 
  23   StringFieldEditor phpParserExtensionsSFE;
 
  24   FileFieldEditor xamppStartSFE;
 
  25   FileFieldEditor xamppStopSFE;
 
  26   StringFieldEditor apacheStartSFE;
 
  28   StringFieldEditor apacheStopSFE;
 
  30   StringFieldEditor apacheRestartSFE;
 
  32   StringFieldEditor mySQLCommandSFE;
 
  34   FileFieldEditor apacheRunFFE;
 
  36   FileFieldEditor httpdConfFFE;
 
  38   FileFieldEditor etcHostsFFE;
 
  40   FileFieldEditor mysqlRunFFE;
 
  42   FileFieldEditor phpRunFFE;
 
  44   BooleanFieldEditor apacheStartBFE;
 
  46   BooleanFieldEditor apacheStopBFE;
 
  48   BooleanFieldEditor apacheRestartBFE;
 
  50   BooleanFieldEditor mysqlStartBFE;
 
  52   public PHPEclipseBasePreferencePage() {
 
  54     setPreferenceStore(PHPeclipsePlugin.getDefault().getPreferenceStore());
 
  55     setDescription(PHPPreferencesMessages.getString("PHPBasePreferencePage.description")); //$NON-NLS-1$
 
  58   public void init(IWorkbench workbench) {
 
  61   protected void performDefaults() {
 
  62     phpParserExtensionsSFE.loadDefault();
 
  63     xamppStartSFE.loadDefault();
 
  64     xamppStopSFE.loadDefault();
 
  65     apacheStartSFE.loadDefault();
 
  66     apacheStopSFE.loadDefault();
 
  67     apacheRestartSFE.loadDefault();
 
  68     mySQLCommandSFE.loadDefault();
 
  69     phpRunFFE.loadDefault();
 
  70     apacheRunFFE.loadDefault();
 
  71     httpdConfFFE.loadDefault();
 
  72     etcHostsFFE.loadDefault();
 
  73     mysqlRunFFE.loadDefault();
 
  74     apacheStartBFE.loadDefault();
 
  75     apacheStopBFE.loadDefault();
 
  76     apacheRestartBFE.loadDefault();
 
  77     mysqlStartBFE.loadDefault();
 
  78     super.performDefaults();
 
  81   public boolean performOk() {
 
  82     PHPFileUtil.setExtensions(null); 
 
  83     phpParserExtensionsSFE.store();
 
  84     xamppStartSFE.store();
 
  86     apacheStartSFE.store();
 
  87     apacheStopSFE.store();
 
  88     apacheRestartSFE.store();
 
  89     mySQLCommandSFE.store();
 
  96     apacheStartBFE.store();
 
  97     apacheStopBFE.store();
 
  98     apacheRestartBFE.store();
 
  99     mysqlStartBFE.store();
 
 100     return super.performOk();
 
 103   protected Control createContents(Composite parent) {
 
 104     initializeDialogUnits(parent);
 
 105     final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
 
 106     Composite composite = new Composite(parent, SWT.LEFT);
 
 107     composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 
 108     composite.setLayout(new GridLayout());
 
 110     // allowed PHP file extensions for parsing
 
 111     Composite phpParserExtensionsComposite = new Composite(composite, SWT.NULL);
 
 112     phpParserExtensionsComposite.setLayout(new GridLayout());
 
 113     phpParserExtensionsComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); 
 
 114     phpParserExtensionsSFE = new StringFieldEditor(IPreferenceConstants.PHP_EXTENSION_PREFS, PHPPreferencesMessages
 
 115         .getString("PHPBasePreferencePage.phpExtensionPrefs"), phpParserExtensionsComposite);
 
 116     phpParserExtensionsSFE.setPreferencePage(this);
 
 117     phpParserExtensionsSFE.setPreferenceStore(getPreferenceStore());
 
 118     phpParserExtensionsSFE.load();
 
 121     Composite apacheSettingsComposite = new Composite(composite, SWT.NULL);
 
 122     apacheSettingsComposite.setLayout(new GridLayout());
 
 123     apacheSettingsComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 
 124     Group apacheSettingsGroup = new Group(apacheSettingsComposite, SWT.NONE);
 
 125     apacheSettingsGroup.setText(PHPPreferencesMessages.getString("PHPBasePreferencePage.apacheGroup"));
 
 126     apacheSettingsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 
 127     apacheSettingsGroup.setLayout(new GridLayout());
 
 129     xamppStartSFE = new FileFieldEditor(IPreferenceConstants.XAMPP_START_PREF, PHPPreferencesMessages
 
 130         .getString("PHPBasePreferencePage.apacheGroup.xampp_start"), apacheSettingsGroup);
 
 131     xamppStartSFE.setPreferencePage(this);
 
 132     xamppStartSFE.setPreferenceStore(getPreferenceStore());
 
 133     xamppStartSFE.load();
 
 135     xamppStopSFE = new FileFieldEditor(IPreferenceConstants.XAMPP_STOP_PREF, PHPPreferencesMessages
 
 136         .getString("PHPBasePreferencePage.apacheGroup.xampp_stop"), apacheSettingsGroup);
 
 137     xamppStopSFE.setPreferencePage(this);
 
 138     xamppStopSFE.setPreferenceStore(getPreferenceStore());
 
 141     apacheStartBFE = new BooleanFieldEditor(PHPeclipsePlugin.APACHE_START_BACKGROUND, PHPPreferencesMessages
 
 142         .getString("PHPBasePreferencePage.apacheGroup.start_background"), apacheSettingsGroup);
 
 143     apacheStartBFE.setPreferencePage(this);
 
 144     apacheStartBFE.setPreferenceStore(getPreferenceStore());
 
 145     apacheStartBFE.load();
 
 147     new Label(apacheSettingsGroup, SWT.NONE);
 
 148     new Label(apacheSettingsGroup, SWT.NONE);
 
 149     apacheStartSFE = new StringFieldEditor(IPreferenceConstants.APACHE_START_PREF, PHPPreferencesMessages
 
 150         .getString("PHPBasePreferencePage.apacheGroup.start"), apacheSettingsGroup);
 
 151     apacheStartSFE.setPreferencePage(this);
 
 152     apacheStartSFE.setPreferenceStore(getPreferenceStore());
 
 153     apacheStartSFE.load();
 
 154     new Label(apacheSettingsGroup, SWT.NONE);
 
 156     apacheStopBFE = new BooleanFieldEditor(PHPeclipsePlugin.APACHE_STOP_BACKGROUND, PHPPreferencesMessages
 
 157         .getString("PHPBasePreferencePage.apacheGroup.stop_background"), apacheSettingsGroup);
 
 158     apacheStopBFE.setPreferencePage(this);
 
 159     apacheStopBFE.setPreferenceStore(getPreferenceStore());
 
 160     apacheStopBFE.load();
 
 161     new Label(apacheSettingsGroup, SWT.NONE);
 
 162     new Label(apacheSettingsGroup, SWT.NONE);
 
 163     apacheStopSFE = new StringFieldEditor(IPreferenceConstants.APACHE_STOP_PREF, PHPPreferencesMessages
 
 164         .getString("PHPBasePreferencePage.apacheGroup.stop"), apacheSettingsGroup);
 
 165     apacheStopSFE.setPreferencePage(this);
 
 166     apacheStopSFE.setPreferenceStore(getPreferenceStore());
 
 167     apacheStopSFE.load();
 
 168     new Label(apacheSettingsGroup, SWT.NONE);
 
 170     apacheRestartBFE = new BooleanFieldEditor(PHPeclipsePlugin.APACHE_RESTART_BACKGROUND, PHPPreferencesMessages
 
 171         .getString("PHPBasePreferencePage.apacheGroup.restart_background"), apacheSettingsGroup);
 
 172     apacheRestartBFE.setPreferencePage(this);
 
 173     apacheRestartBFE.setPreferenceStore(getPreferenceStore());
 
 174     apacheRestartBFE.load();
 
 175     new Label(apacheSettingsGroup, SWT.NONE);
 
 176     new Label(apacheSettingsGroup, SWT.NONE);
 
 177     apacheRestartSFE = new StringFieldEditor(IPreferenceConstants.APACHE_RESTART_PREF, PHPPreferencesMessages
 
 178         .getString("PHPBasePreferencePage.apacheGroup.restart"), apacheSettingsGroup);
 
 179     apacheRestartSFE.setPreferencePage(this);
 
 180     apacheRestartSFE.setPreferenceStore(getPreferenceStore());
 
 181     apacheRestartSFE.load();
 
 182     new Label(apacheSettingsGroup, SWT.NONE);
 
 184     apacheRunFFE = new FileFieldEditor(IPreferenceConstants.APACHE_RUN_PREF, PHPPreferencesMessages
 
 185         .getString("PHPBasePreferencePage.apacheGroup.run"), apacheSettingsGroup);
 
 186     apacheRunFFE.setPreferencePage(this);
 
 187     apacheRunFFE.setPreferenceStore(getPreferenceStore());
 
 190     httpdConfFFE = new FileFieldEditor(IPreferenceConstants.HTTPD_CONF_PATH_PREF, PHPPreferencesMessages
 
 191             .getString("PHPBasePreferencePage.apacheGroup.httpdconf"), apacheSettingsGroup);
 
 192     httpdConfFFE.setPreferencePage(this);
 
 193     httpdConfFFE.setPreferenceStore(getPreferenceStore());
 
 196     etcHostsFFE = new FileFieldEditor(IPreferenceConstants.ETC_HOSTS_PATH_PREF, PHPPreferencesMessages
 
 197             .getString("PHPBasePreferencePage.apacheGroup.etchosts"), apacheSettingsGroup);
 
 198     etcHostsFFE.setPreferencePage(this);
 
 199     etcHostsFFE.setPreferenceStore(getPreferenceStore());
 
 202     phpRunFFE = new FileFieldEditor(IPreferenceConstants.PHP_RUN_PREF, PHPPreferencesMessages
 
 203         .getString("PHPBasePreferencePage.console.php"), apacheSettingsGroup);
 
 204     phpRunFFE.setPreferencePage(this);
 
 205     phpRunFFE.setPreferenceStore(getPreferenceStore());
 
 209     Composite mySQLSettingsComposite = new Composite(composite, SWT.NULL);
 
 210     mySQLSettingsComposite.setLayout(new GridLayout());
 
 211     mySQLSettingsComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 
 213     Group mySQLSettingsGroup = new Group(mySQLSettingsComposite, SWT.NONE);
 
 214     mySQLSettingsGroup.setText(PHPPreferencesMessages.getString("PHPBasePreferencePage.mySQLGroup"));
 
 215     mySQLSettingsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
 
 216     mySQLSettingsGroup.setLayout(new GridLayout());
 
 218     mysqlStartBFE = new BooleanFieldEditor(PHPeclipsePlugin.MYSQL_START_BACKGROUND, PHPPreferencesMessages
 
 219         .getString("PHPBasePreferencePage.mySQLGroup.start_background"), mySQLSettingsGroup);
 
 220     mysqlStartBFE.setPreferencePage(this);
 
 221     mysqlStartBFE.setPreferenceStore(getPreferenceStore());
 
 222     mysqlStartBFE.load();
 
 223     new Label(mySQLSettingsGroup, SWT.NONE);
 
 224     new Label(mySQLSettingsGroup, SWT.NONE);
 
 226     mySQLCommandSFE = new StringFieldEditor(IPreferenceConstants.MYSQL_PREF, PHPPreferencesMessages
 
 227         .getString("PHPBasePreferencePage.mySQLGroup.command"), mySQLSettingsGroup);
 
 228     mySQLCommandSFE.setPreferencePage(this);
 
 229     mySQLCommandSFE.setPreferenceStore(getPreferenceStore());
 
 230     mySQLCommandSFE.load();
 
 231     new Label(mySQLSettingsGroup, SWT.NONE);
 
 233     mysqlRunFFE = new FileFieldEditor(IPreferenceConstants.MYSQL_RUN_PREF, PHPPreferencesMessages
 
 234         .getString("PHPBasePreferencePage.mySQLGroup.run"), mySQLSettingsGroup);
 
 235     mysqlRunFFE.setPreferencePage(this);
 
 236     mysqlRunFFE.setPreferenceStore(getPreferenceStore());