1 package net.sourceforge.phpeclipse;
3 import java.util.ArrayList;
5 import net.sourceforge.phpeclipse.preferences.PHPPreferencesMessages;
7 import org.eclipse.jface.preference.BooleanFieldEditor;
8 import org.eclipse.jface.preference.DirectoryFieldEditor;
9 import org.eclipse.jface.preference.IPreferenceStore;
10 import org.eclipse.jface.preference.PreferencePage;
11 import org.eclipse.jface.preference.RadioGroupFieldEditor;
12 import org.eclipse.jface.preference.StringFieldEditor;
13 import org.eclipse.swt.SWT;
14 import org.eclipse.swt.events.ModifyListener;
15 import org.eclipse.swt.events.SelectionListener;
16 import org.eclipse.swt.layout.GridData;
17 import org.eclipse.swt.layout.GridLayout;
18 import org.eclipse.swt.widgets.Composite;
19 import org.eclipse.swt.widgets.Control;
20 import org.eclipse.swt.widgets.Group;
21 import org.eclipse.swt.widgets.Label;
22 import org.eclipse.ui.IWorkbench;
23 import org.eclipse.ui.IWorkbenchPreferencePage;
25 public class PHPEclipseBasePreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
27 private SelectionListener SelectionListener;
28 private ModifyListener ModifyListener;
29 private ModifyListener TextModifyListener;
31 private ArrayList CheckBoxes = new ArrayList();
32 private ArrayList ComboBoxes = new ArrayList();
33 private ArrayList TextBoxes = new ArrayList();
34 private ArrayList RadioButtons = new ArrayList();
36 StringFieldEditor localHostSFE;
37 DirectoryFieldEditor documentRootDFE;
38 BooleanFieldEditor externalBrowserBFE;
39 StringFieldEditor externalBrowserSFE;
40 StringFieldEditor apacheStartSFE;
41 StringFieldEditor apacheStopSFE;
42 StringFieldEditor apacheRestartSFE;
43 StringFieldEditor mySQLCommandSFE;
44 RadioGroupFieldEditor chooseParser;
45 StringFieldEditor externalParserSFE;
46 BooleanFieldEditor parseOnSave;
48 public PHPEclipseBasePreferencePage() {
50 setPreferenceStore(PHPeclipsePlugin.getDefault().getPreferenceStore());
51 setDescription(PHPPreferencesMessages.getString("PHPBasePreferencePage.description")); //$NON-NLS-1$
53 public void init(IWorkbench workbench) {
55 protected void performDefaults() {
56 localHostSFE.loadDefault();
57 documentRootDFE.loadDefault();
58 externalBrowserBFE.loadDefault();
59 externalBrowserSFE.loadDefault();
60 apacheStartSFE.loadDefault();
61 apacheStopSFE.loadDefault();
62 apacheRestartSFE.loadDefault();
63 mySQLCommandSFE.loadDefault();
64 chooseParser.loadDefault();
65 externalParserSFE.loadDefault();
66 parseOnSave.loadDefault();
67 super.performDefaults();
70 public boolean performOk() {
72 documentRootDFE.store();
73 externalBrowserBFE.store();
74 externalBrowserSFE.store();
75 apacheStartSFE.store();
76 apacheStopSFE.store();
77 apacheRestartSFE.store();
78 mySQLCommandSFE.store();
80 externalParserSFE.store();
82 return super.performOk();
85 protected Control createContents(Composite parent) {
86 initializeDialogUnits(parent);
87 final IPreferenceStore store = PHPeclipsePlugin.getDefault().getPreferenceStore();
88 Composite composite = new Composite(parent, SWT.LEFT);
89 composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
90 composite.setLayout(new GridLayout());
92 Composite webSettingsComposite = new Composite(composite, SWT.NONE);
93 webSettingsComposite.setLayout(new GridLayout());
94 webSettingsComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
95 Group webSettingsGroup = new Group(webSettingsComposite, SWT.NONE);
96 webSettingsGroup.setText(PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup"));
97 webSettingsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
98 webSettingsGroup.setLayout(new GridLayout());
100 new StringFieldEditor(
101 IPreferenceConstants.LOCALHOST_PREF,
102 PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.localhost"),
104 localHostSFE.setPreferencePage(this);
105 localHostSFE.setPreferenceStore(getPreferenceStore());
108 new DirectoryFieldEditor(
109 IPreferenceConstants.DOCUMENTROOT_PREF,
110 PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.docroot"),
112 documentRootDFE.setPreferencePage(this);
113 documentRootDFE.setPreferenceStore(getPreferenceStore());
114 documentRootDFE.load();
115 new Label(webSettingsGroup, SWT.NONE);
117 new BooleanFieldEditor(
118 IPreferenceConstants.USE_EXTERNAL_BROWSER_PREF,
119 PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.useexternal"),
121 externalBrowserBFE.setPreferencePage(this);
122 externalBrowserBFE.setPreferenceStore(getPreferenceStore());
123 externalBrowserBFE.load();
124 new Label(webSettingsGroup, SWT.NONE);
126 new StringFieldEditor(
127 IPreferenceConstants.EXTERNAL_BROWSER_PREF,
128 PHPPreferencesMessages.getString("PHPBasePreferencePage.websettingsGroup.browser"),
130 externalBrowserSFE.setPreferencePage(this);
131 externalBrowserSFE.setPreferenceStore(getPreferenceStore());
132 externalBrowserSFE.load();
135 Composite apacheSettingsComposite = new Composite(composite, SWT.NULL);
136 apacheSettingsComposite.setLayout(new GridLayout());
137 apacheSettingsComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
138 Group apacheSettingsGroup = new Group(apacheSettingsComposite, SWT.NONE);
139 apacheSettingsGroup.setText(PHPPreferencesMessages.getString("PHPBasePreferencePage.apacheGroup"));
140 apacheSettingsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
141 apacheSettingsGroup.setLayout(new GridLayout());
143 new StringFieldEditor(
144 IPreferenceConstants.APACHE_START_PREF,
145 PHPPreferencesMessages.getString("PHPBasePreferencePage.apacheGroup.start"),
146 apacheSettingsGroup);
147 apacheStartSFE.setPreferencePage(this);
148 apacheStartSFE.setPreferenceStore(getPreferenceStore());
149 apacheStartSFE.load();
151 new StringFieldEditor(
152 IPreferenceConstants.APACHE_STOP_PREF,
153 PHPPreferencesMessages.getString("PHPBasePreferencePage.apacheGroup.stop"),
154 apacheSettingsGroup);
155 apacheStopSFE.setPreferencePage(this);
156 apacheStopSFE.setPreferenceStore(getPreferenceStore());
157 apacheStopSFE.load();
159 new StringFieldEditor(
160 IPreferenceConstants.APACHE_RESTART_PREF,
161 PHPPreferencesMessages.getString("PHPBasePreferencePage.apacheGroup.restart"),
162 apacheSettingsGroup);
163 apacheRestartSFE.setPreferencePage(this);
164 apacheRestartSFE.setPreferenceStore(getPreferenceStore());
165 apacheRestartSFE.load();
168 Composite mySQLSettingsComposite = new Composite(composite, SWT.NULL);
169 mySQLSettingsComposite.setLayout(new GridLayout());
170 mySQLSettingsComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
172 Group mySQLSettingsGroup = new Group(mySQLSettingsComposite, SWT.NONE);
173 mySQLSettingsGroup.setText(PHPPreferencesMessages.getString("PHPBasePreferencePage.mySQLGroup"));
174 mySQLSettingsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
175 mySQLSettingsGroup.setLayout(new GridLayout());
177 new StringFieldEditor(
178 IPreferenceConstants.MYSQL_PREF,
179 PHPPreferencesMessages.getString("PHPBasePreferencePage.mySQLGroup.command"),
181 mySQLCommandSFE.setPreferencePage(this);
182 mySQLCommandSFE.setPreferenceStore(getPreferenceStore());
183 mySQLCommandSFE.load();
185 //Create parser settings composite
186 Composite parserSettingsComposite = new Composite(composite, SWT.NONE);
187 parserSettingsComposite.setLayout(new GridLayout());
188 parserSettingsComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
189 Group parserSettingsGroup = new Group(parserSettingsComposite, SWT.NONE);
190 parserSettingsGroup.setText(PHPPreferencesMessages.getString("PHPBasePreferencePage.parsers"));
191 parserSettingsGroup.setLayout(new GridLayout());
192 parserSettingsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
195 new RadioGroupFieldEditor(
196 IPreferenceConstants.PHP_PARSER_DEFAULT,
197 PHPPreferencesMessages.getString("PHPBasePreferencePage.parsers.choose"),
200 { PHPPreferencesMessages.getString("PHPBasePreferencePage.parsers.internal"), IPreferenceConstants.PHP_INTERNAL_PARSER },
202 PHPPreferencesMessages.getString("PHPBasePreferencePage.parsers.external"), IPreferenceConstants.PHP_EXTERNAL_PARSER }
203 }, parserSettingsGroup);
204 chooseParser.setPreferencePage(this);
205 chooseParser.setPreferenceStore(getPreferenceStore());
207 //create a copmposte just for the StringEditor - makes layout simpler
208 Composite externalParserCompo = new Composite(parserSettingsGroup, SWT.NONE);
210 new StringFieldEditor(
211 IPreferenceConstants.EXTERNAL_PARSER_PREF,
212 PHPPreferencesMessages.getString("PHPBasePreferencePage.parsers.extcommand"),
213 externalParserCompo/*parserSettingsGroup*/);
214 externalParserSFE.setPreferencePage(this);
215 externalParserSFE.setPreferenceStore(getPreferenceStore());
216 externalParserSFE.load();
218 parseOnSave = new BooleanFieldEditor(PHPeclipsePlugin.PHP_PARSE_ON_SAVE,
219 PHPPreferencesMessages.getString("PHPBasePreferencePage.parsers.pos"), parserSettingsGroup);
220 parseOnSave.setPreferencePage(this);
221 parseOnSave.setPreferenceStore(getPreferenceStore());