From: Jan P. <jp...@us...> - 2008-07-14 13:51:39
|
Update of /cvsroot/e-p-i-c/org.epic.perleditor/src/org/epic/perleditor/preferences In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv2394/src/org/epic/perleditor/preferences Modified Files: ModuleStarterPreferencePage.java PreferenceConstants.java Log Message: Fixes to patch [ 2001837 ] Add Module::Starter to New Perl Project Wizard: - various corrections to error handling (e.g. the preference page could not be left if module-starter wasn't available in the system) - bug fixes to preference loading (some fields were not loaded properly) - more uniform loading of default and user-defined preferences; moved the default preference values to PreferenceConstants where they belong Index: ModuleStarterPreferencePage.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.perleditor/src/org/epic/perleditor/preferences/ModuleStarterPreferencePage.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ModuleStarterPreferencePage.java 14 Jul 2008 13:45:37 -0000 1.1 +++ ModuleStarterPreferencePage.java 14 Jul 2008 13:51:36 -0000 1.2 @@ -15,6 +15,7 @@ import java.util.ArrayList; import java.util.List; +import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; @@ -97,7 +98,7 @@ { customLocationText.setText(loadString( PreferenceConstants.MODULE_STARTER_LOCATION, - DEFAULT_LOCATION)); + DEFAULT_LOCATION, false)); customLocationText.setEnabled(useCustomButton.getSelection() && moduleEnabledButton.getSelection()); @@ -152,7 +153,7 @@ toggleEnabled(moduleEnabledButton.getSelection()); - loadPreferences(); + loadPreferences(false); return null; } @@ -217,13 +218,14 @@ public void init(IWorkbench workbench) { setPreferenceStore(PerlEditorPlugin.getDefault().getPreferenceStore()); + updateErrorMessage(); } /* * @see org.eclipse.jface.preference.PreferencePage#performOk() */ public boolean performOk() - { + { storeBoolean(PreferenceConstants.MODULE_STARTER_ENABLED, moduleEnabledButton.getSelection()); @@ -251,14 +253,9 @@ */ protected void performDefaults() { - moduleEnabledButton.setSelection(true); - useDefaultButton.setSelection(true); - useCustomButton.setSelection(false); - customLocationText.setText(""); - overrideConfigButton.setSelection(false); - authorText.setText(System.getProperty("user.name")); - emailText.setText(""); - addnOptsText.setText(""); + errors.clear(); + loadPreferences(true); + super.performDefaults(); } @@ -268,23 +265,14 @@ protected void removeErrorMessage(String message) { errors.remove(message); - if (errors.isEmpty()) - { - addErrorMessage(null); - } - else - { - addErrorMessage((String) errors.get(errors.size() - 1)); - } + updateErrorMessage(); } private void addErrorMessage(String message) { errors.remove(message); errors.add(message); - - setErrorMessage(message); - setValid(message == null); + updateErrorMessage(); } private Composite createComposite(Composite parent, int numCols) @@ -292,24 +280,46 @@ return WidgetUtils.createComposite(parent, numCols); } - private boolean loadBoolean(String name) + private boolean loadBoolean(String name, boolean restoreDefault) { - return getPreferenceStore().getBoolean(name); + IPreferenceStore store = getPreferenceStore(); + return restoreDefault ? store.getDefaultBoolean(name) : store.getBoolean(name); } - private void loadPreferences() + private void loadPreferences(boolean restoreDefaults) { - boolean useDefault = loadBoolean(PreferenceConstants.MODULE_STARTER_DEFAULT_LOCATION); + boolean useDefault = loadBoolean(PreferenceConstants.MODULE_STARTER_DEFAULT_LOCATION, restoreDefaults); useDefaultButton.setSelection(useDefault); useCustomButton.setSelection(!useDefault); + moduleEnabledButton.setSelection(loadBoolean( + PreferenceConstants.MODULE_STARTER_ENABLED, + restoreDefaults)); customLocationText.setText(loadString( - PreferenceConstants.MODULE_STARTER_LOCATION, DEFAULT_LOCATION)); + PreferenceConstants.MODULE_STARTER_LOCATION, "", + restoreDefaults)); + overrideConfigButton.setSelection(loadBoolean( + PreferenceConstants.MODULE_STARTER_OVERRIDE_CONFIG, + restoreDefaults)); + authorText.setText(loadString( + PreferenceConstants.MODULE_STARTER_AUTHOR, "", + restoreDefaults)); + emailText.setText(loadString( + PreferenceConstants.MODULE_STARTER_EMAIL, "", + restoreDefaults)); + addnOptsText.setText(loadString( + PreferenceConstants.MODULE_STARTER_ADDN_OPTS, "", + restoreDefaults)); + + validateLocation(customLocationText.getText()); + toggleEnabled(moduleEnabledButton.getSelection()); + updateErrorMessage(); } - private String loadString(String name, String backup) + private String loadString(String name, String backup, boolean restoreDefault) { - String value = getPreferenceStore().getString(name); + IPreferenceStore store = getPreferenceStore(); + String value = restoreDefault ? store.getDefaultString(name) : store.getString(name); return ("".equals(value) ? backup : value); } @@ -332,12 +342,20 @@ useCustomButton.setEnabled(enabled); overrideConfigButton.setEnabled(enabled); - customLocationText.setEnabled((enabled && !useDefaultButton - .getSelection())); + customLocationText.setEnabled((enabled && !useDefaultButton.getSelection())); authorText.setEnabled(enabled && overrideConfigButton.getSelection()); emailText.setEnabled(enabled && overrideConfigButton.getSelection()); addnOptsText.setEnabled(enabled && overrideConfigButton.getSelection()); } + + private void updateErrorMessage() + { + String message = errors.isEmpty() + ? null : (String) errors.get(errors.size()-1); + + setErrorMessage(message); + setValid(message == null); + } private void validateEnabled() { @@ -368,8 +386,9 @@ } removeErrorMessage(ENTER_PATH_MSG); - - if (!new File(location).isFile()) + + if (moduleEnabledButton.getSelection() && + !new File(location).isFile()) { addErrorMessage(INVALID_PATH_ERR); } Index: PreferenceConstants.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.perleditor/src/org/epic/perleditor/preferences/PreferenceConstants.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- PreferenceConstants.java 14 Jul 2008 13:45:37 -0000 1.15 +++ PreferenceConstants.java 14 Jul 2008 13:51:36 -0000 1.16 @@ -534,7 +534,7 @@ public static final String MODULE_STARTER_DEFAULT_LOCATION = "moduleStarterDefaultLocation"; //$NON-NLS-1$ public static final String MODULE_STARTER_LOCATION = "moduleStarterLocation"; //$NON-NLS-1$ public static final String MODULE_STARTER_OVERRIDE_CONFIG = "moduleStarterOverrideConfig"; //$NON-NLS-1$ - public static final String MODULE_STARTER_EMAIL = "moduelStarterEmail"; //$NON-NLS-1$ + public static final String MODULE_STARTER_EMAIL = "moduleStarterEmail"; //$NON-NLS-1$ public static final String MODULE_STARTER_AUTHOR = "moduleStarterAuthor"; //$NON-NLS-1$ public static final String MODULE_STARTER_ADDN_OPTS = "moduleStarterAddnOpts"; //$NON-NLS-1$ @@ -635,5 +635,13 @@ store.setDefault(PreferenceConstants.EDITOR_OPERATOR_COLOR_BOLD, false); store.setDefault(PreferenceConstants.EDITOR_NUMBER_COLOR_BOLD, false); store.setDefault(PreferenceConstants.EDITOR_INVALID_COLOR_BOLD, false); + + store.setDefault(PreferenceConstants.MODULE_STARTER_ENABLED, false); + store.setDefault(PreferenceConstants.MODULE_STARTER_DEFAULT_LOCATION, true); + store.setDefault(PreferenceConstants.MODULE_STARTER_LOCATION, ""); //$NON-NLS-1$ + store.setDefault(PreferenceConstants.MODULE_STARTER_OVERRIDE_CONFIG, true); + store.setDefault(PreferenceConstants.MODULE_STARTER_EMAIL, ""); //$NON-NLS-1$ + store.setDefault(PreferenceConstants.MODULE_STARTER_AUTHOR, System.getProperty("user.name")); //$NON-NLS-1$ + store.setDefault(PreferenceConstants.MODULE_STARTER_ADDN_OPTS, ""); //$NON-NLS-1$ } } |