From: Jan P. <jp...@us...> - 2008-07-19 23:44:32
|
Update of /cvsroot/e-p-i-c/org.epic.perleditor/src/org/epic/core/preferences In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv6179/src/org/epic/core/preferences Modified Files: PerlMainPreferencePage.java Log Message: Refactoring: - moved all preferences from PerlEditorPlugin to PreferenceConstants where they belong - added a new method PerlEditorPlugin.getBooleanPreference for reading old style boolean preferences (valued "0/1" rather than "false/true") - small fixes to correctly reset preferences to their default values on the main preference page (some preferences were not updated when "Apply Defaults" was clicked) Index: PerlMainPreferencePage.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.perleditor/src/org/epic/core/preferences/PerlMainPreferencePage.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- PerlMainPreferencePage.java 25 Sep 2006 06:18:53 -0000 1.15 +++ PerlMainPreferencePage.java 19 Jul 2008 23:44:28 -0000 1.16 @@ -1,5 +1,6 @@ package org.epic.core.preferences; +import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.*; @@ -13,6 +14,7 @@ import org.eclipse.swt.events.SelectionEvent; import org.epic.perleditor.PerlEditorPlugin; +import org.epic.perleditor.preferences.PreferenceConstants; public class PerlMainPreferencePage extends PreferencePage @@ -30,7 +32,10 @@ private Combo interpreterTypeCombo; private Label syntaxIntervalSecondsLabel; private Composite fParent; - private String[] intepreterTypes = {PerlEditorPlugin.INTERPRETER_TYPE_STANDARD,PerlEditorPlugin.INTERPRETER_TYPE_CYGWIN}; + private String[] intepreterTypes = { + PreferenceConstants.DEBUG_INTERPRETER_TYPE_STANDARD, + PreferenceConstants.DEBUG_INTERPRETER_TYPE_CYGWIN + }; /* * @see PreferencePage#createContents(Composite) @@ -87,7 +92,7 @@ executableText.setLayoutData(data); executableText.setText( - PerlEditorPlugin.getDefault().getExecutablePreference()); + PerlEditorPlugin.getDefault().getPerlExecutable()); /* Label executableInfoLabel = new Label(top, SWT.NONE); @@ -105,17 +110,18 @@ new Label(buttonComposite, SWT.NONE).setText("Interpreter type:"); interpreterTypeCombo = new Combo(buttonComposite, SWT.READ_ONLY); interpreterTypeCombo.setItems(intepreterTypes); - interpreterTypeCombo.setText(PerlEditorPlugin.getDefault().getPreferenceStore().getString(PerlEditorPlugin.INTERPRETER_TYPE_PREFERENCE)); - + interpreterTypeCombo.setText( + PerlEditorPlugin.getDefault().getPreferenceStore().getString( + PreferenceConstants.DEBUG_INTERPRETER_TYPE)); - // Warning preference data = new GridData(GridData.FILL_HORIZONTAL); data.grabExcessHorizontalSpace = true; warningsCheckBox = new Button(top, SWT.CHECK); warningsCheckBox.setText("Enable warnings"); warningsCheckBox.setSelection( - PerlEditorPlugin.getDefault().getWarningsPreference()); + PerlEditorPlugin.getDefault().getBooleanPreference( + PreferenceConstants.DEBUG_SHOW_WARNINGS)); warningsCheckBox.setLayoutData(data); // Taint check preference @@ -124,7 +130,8 @@ taintCheckBox = new Button(top, SWT.CHECK); taintCheckBox.setText("Enable taint mode"); taintCheckBox.setSelection( - PerlEditorPlugin.getDefault().getTaintPreference()); + PerlEditorPlugin.getDefault().getBooleanPreference( + PreferenceConstants.DEBUG_TAINT_MODE)); taintCheckBox.setLayoutData(data); // Debugger console (experimental) @@ -133,7 +140,8 @@ debugConsoleCheckBox = new Button(top, SWT.CHECK); debugConsoleCheckBox.setText("Enable debugger console (experimental)"); debugConsoleCheckBox.setSelection( - PerlEditorPlugin.getDefault().getDebugConsolePreference()); + PerlEditorPlugin.getDefault().getBooleanPreference( + PreferenceConstants.DEBUG_DEBUG_CONSOLE)); debugConsoleCheckBox.setLayoutData(data); // Stop debugger at first line @@ -142,7 +150,8 @@ suspendAtFirstCheckBox = new Button(top, SWT.CHECK); suspendAtFirstCheckBox.setText("Suspend debugger at first statement"); suspendAtFirstCheckBox.setSelection( - PerlEditorPlugin.getDefault().getSuspendAtFirstPreference()); + PerlEditorPlugin.getDefault().getBooleanPreference( + PreferenceConstants.DEBUG_SUSPEND_AT_FIRST)); suspendAtFirstCheckBox.setLayoutData(data); //WebBrowser preferences @@ -161,7 +170,8 @@ browserLabelText = new Text(browserComposite, SWT.BORDER); browserLabelText.setLayoutData(data); browserLabelText.setText( - PerlEditorPlugin.getDefault().getWebBrowserPreference()); + PerlEditorPlugin.getDefault().getPreferenceStore().getString( + PreferenceConstants.BROWSER_START_URL)); Composite syntaxIntervalComposite = new Composite(top, SWT.NULL); @@ -173,30 +183,25 @@ GridData.FILL_BOTH | GridData.VERTICAL_ALIGN_BEGINNING); syntaxIntervalComposite.setLayoutData(data); - - validateCheckBox = new Button(syntaxIntervalComposite, SWT.CHECK); validateCheckBox.setText("Validate source when idle for "); - validateCheckBox.setSelection( - PerlEditorPlugin.getDefault().getSyntaxValidationPreference()); - + validateCheckBox.setSelection( + PerlEditorPlugin.getDefault().getBooleanPreference( + PreferenceConstants.EDITOR_SYNTAX_VALIDATION)); syntaxCheckInterval = new Scale(syntaxIntervalComposite, SWT.HORIZONTAL); syntaxCheckInterval.setMinimum(1); syntaxCheckInterval.setMaximum(10000); syntaxCheckInterval.setIncrement(100); syntaxIntervalSecondsLabel = new Label(syntaxIntervalComposite, SWT.NONE); - int interval = PerlEditorPlugin.getDefault().getPreferenceStore().getInt(PerlEditorPlugin.SYNTAX_VALIDATION_INTERVAL_PREFERENCE) ; - float intervalDisplay = Math.round(interval/10f)/100f; - syntaxIntervalSecondsLabel.setText(intervalDisplay + " seconds "); - syntaxCheckInterval.setSelection(interval); + displayInterval(PerlEditorPlugin.getDefault().getPreferenceStore().getInt( + PreferenceConstants.EDITOR_SYNTAX_VALIDATION_INTERVAL)); - syntaxCheckInterval.addListener (SWT.Selection, new Listener () { - public void handleEvent (Event event) { - float intervalDisplay = Math.round(syntaxCheckInterval.getSelection()/10f)/100f; - syntaxIntervalSecondsLabel.setText(intervalDisplay + " seconds "); - } - }); + syntaxCheckInterval.addListener(SWT.Selection, new Listener () { + public void handleEvent (Event event) + { + displayInterval(syntaxCheckInterval.getSelection()); + } }); syntaxIntervalComposite.setLayoutData(data); @@ -219,49 +224,69 @@ * store. */ protected void performDefaults() { + IPreferenceStore prefs = PerlEditorPlugin.getDefault().getPreferenceStore(); + executableText.setText( - PerlEditorPlugin.getDefault().getDefaultExecutablePreference()); - + prefs.getDefaultString(PreferenceConstants.DEBUG_PERL_EXECUTABLE)); warningsCheckBox.setSelection( - PerlEditorPlugin.getDefault().getDefaultWarningsPreference()); + prefs.getDefaultBoolean(PreferenceConstants.DEBUG_SHOW_WARNINGS)); taintCheckBox.setSelection( - PerlEditorPlugin.getDefault().getDefaultTaintPreference()); - interpreterTypeCombo.setText(PerlEditorPlugin.INTERPRETER_TYPE_STANDARD); - + prefs.getDefaultBoolean(PreferenceConstants.DEBUG_TAINT_MODE)); + debugConsoleCheckBox.setSelection( + prefs.getDefaultBoolean(PreferenceConstants.DEBUG_DEBUG_CONSOLE)); + suspendAtFirstCheckBox.setSelection( + prefs.getDefaultBoolean(PreferenceConstants.DEBUG_SUSPEND_AT_FIRST)); + interpreterTypeCombo.setText( + prefs.getDefaultString(PreferenceConstants.DEBUG_INTERPRETER_TYPE)); browserLabelText.setText( - PerlEditorPlugin.getDefault().getDefaultWebBrowserPreference()); - - - validateCheckBox.setSelection( - PerlEditorPlugin.getDefault().getDefaultSyntaxValidationPreference()); - float intervalDisplay = Math.round(PerlEditorPlugin.SYNTAX_VALIDATION_INTERVAL_DEFAULT/10f)/100f; - syntaxIntervalSecondsLabel.setText(intervalDisplay + " seconds "); - syntaxCheckInterval.setSelection(PerlEditorPlugin.SYNTAX_VALIDATION_INTERVAL_DEFAULT); - - //colorEditor.loadDefault(); + prefs.getDefaultString(PreferenceConstants.BROWSER_START_URL)); + validateCheckBox.setSelection( + prefs.getDefaultBoolean(PreferenceConstants.EDITOR_SYNTAX_VALIDATION)); + int defaultInterval = prefs.getDefaultInt( + PreferenceConstants.EDITOR_SYNTAX_VALIDATION_INTERVAL); + displayInterval(defaultInterval); } /** * Method declared on IPreferencePage. Save the * color preference to the preference store. */ public boolean performOk() { - PerlEditorPlugin.getDefault().setExecutablePreference( + IPreferenceStore prefs = PerlEditorPlugin.getDefault().getPreferenceStore(); + + PerlEditorPlugin.getDefault().setPerlExecutable( executableText.getText()); - PerlEditorPlugin.getDefault().setWarningsPreference( - warningsCheckBox.getSelection()); - PerlEditorPlugin.getDefault().setTaintPreference( + prefs.setValue( + PreferenceConstants.DEBUG_SHOW_WARNINGS, + warningsCheckBox.getSelection()); + prefs.setValue( + PreferenceConstants.DEBUG_TAINT_MODE, taintCheckBox.getSelection()); - PerlEditorPlugin.getDefault().setDebugConsolePreference( + prefs.setValue( + PreferenceConstants.DEBUG_DEBUG_CONSOLE, debugConsoleCheckBox.getSelection()); - PerlEditorPlugin.getDefault().setSuspendAtFirstPreference( + prefs.setValue( + PreferenceConstants.DEBUG_SUSPEND_AT_FIRST, suspendAtFirstCheckBox.getSelection()); - PerlEditorPlugin.getDefault().setSyntaxValidationPreference( - validateCheckBox.getSelection()); - PerlEditorPlugin.getDefault().getPreferenceStore().setValue(PerlEditorPlugin.INTERPRETER_TYPE_PREFERENCE, interpreterTypeCombo.getText()); - PerlEditorPlugin.getDefault().getPreferenceStore().setValue(PerlEditorPlugin.SYNTAX_VALIDATION_INTERVAL_PREFERENCE, syntaxCheckInterval.getSelection()); - PerlEditorPlugin.getDefault().setWebBrowserPreference( - browserLabelText.getText()); + prefs.setValue( + PreferenceConstants.EDITOR_SYNTAX_VALIDATION, + validateCheckBox.getSelection()); + prefs.setValue( + PreferenceConstants.DEBUG_INTERPRETER_TYPE, + interpreterTypeCombo.getText()); + prefs.setValue( + PreferenceConstants.EDITOR_SYNTAX_VALIDATION_INTERVAL, + syntaxCheckInterval.getSelection()); + prefs.setValue( + PreferenceConstants.BROWSER_START_URL, + browserLabelText.getText()); return super.performOk(); } + + private void displayInterval(int interval) + { + float intervalDisplay = Math.round(interval/10f)/100f; + syntaxIntervalSecondsLabel.setText(intervalDisplay + " seconds "); + syntaxCheckInterval.setSelection(interval); + } } \ No newline at end of file |