diff options
author | Mathias Kinzler | 2010-06-21 21:51:28 +0000 |
---|---|---|
committer | Matthias Sohn | 2010-06-21 21:51:28 +0000 |
commit | c653c9502f46ea7ee74e3ecd5cb0ea5642bd59ff (patch) | |
tree | ecd0dfa37bb1da2c6c8a3139975e0a04d2c1f06b | |
parent | 9718f053df30bd6ba3887677da44248f3652621a (diff) | |
download | egit-c653c9502f46ea7ee74e3ecd5cb0ea5642bd59ff.tar.gz egit-c653c9502f46ea7ee74e3ecd5cb0ea5642bd59ff.tar.xz egit-c653c9502f46ea7ee74e3ecd5cb0ea5642bd59ff.zip |
Remove deprecated Preference handling
Stop using the deprecated Preference class and replace with
IPreferenceStore/IEclipsePreferences.
Bug: 312779
Change-Id: I15296a4fd93239d25e35565a9016bd9ff2b50894
Signed-off-by: Mathias Kinzler <mathias.kinzler@sap.com>
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
9 files changed, 134 insertions, 115 deletions
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/GitCorePreferenceInitializer.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/GitCorePreferenceInitializer.java index 6435a953e0..81f82a2b4d 100644 --- a/org.eclipse.egit.core/src/org/eclipse/egit/core/GitCorePreferenceInitializer.java +++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/GitCorePreferenceInitializer.java @@ -9,19 +9,20 @@ *******************************************************************************/ package org.eclipse.egit.core; -import org.eclipse.core.runtime.Preferences; import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.core.runtime.preferences.DefaultScope; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; /** Initializes plugin preferences with default values. */ public class GitCorePreferenceInitializer extends AbstractPreferenceInitializer { private static final int MB = 1024 * 1024; public void initializeDefaultPreferences() { - final Preferences p = Activator.getDefault().getPluginPreferences(); + final IEclipsePreferences p = new DefaultScope().getNode(Activator.getPluginId()); - p.setDefault(GitCorePreferences.core_packedGitWindowSize, 8 * 1024); - p.setDefault(GitCorePreferences.core_packedGitLimit, 10 * MB); - p.setDefault(GitCorePreferences.core_packedGitMMAP, false); - p.setDefault(GitCorePreferences.core_deltaBaseCacheLimit, 10 * MB); + p.putInt(GitCorePreferences.core_packedGitWindowSize, 8 * 1024); + p.putInt(GitCorePreferences.core_packedGitLimit, 10 * MB); + p.putBoolean(GitCorePreferences.core_packedGitMMAP, false); + p.putInt(GitCorePreferences.core_deltaBaseCacheLimit, 10 * MB); } } diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java index 60550af6ad..56986687bc 100644 --- a/org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java +++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java @@ -30,8 +30,10 @@ import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceChangeListener; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.Preferences; import org.eclipse.core.runtime.QualifiedName; +import org.eclipse.core.runtime.preferences.DefaultScope; +import org.eclipse.core.runtime.preferences.IEclipsePreferences; +import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.egit.core.Activator; import org.eclipse.egit.core.CoreText; import org.eclipse.egit.core.GitCorePreferences; @@ -215,11 +217,12 @@ public class GitProjectData { */ public static void reconfigureWindowCache() { final WindowCacheConfig c = new WindowCacheConfig(); - Preferences p = Activator.getDefault().getPluginPreferences(); - c.setPackedGitLimit(p.getInt(GitCorePreferences.core_packedGitLimit)); - c.setPackedGitWindowSize(p.getInt(GitCorePreferences.core_packedGitWindowSize)); - c.setPackedGitMMAP(p.getBoolean(GitCorePreferences.core_packedGitMMAP)); - c.setDeltaBaseCacheLimit(p.getInt(GitCorePreferences.core_deltaBaseCacheLimit)); + IEclipsePreferences d = new DefaultScope().getNode(Activator.getPluginId()); + IEclipsePreferences p = new InstanceScope().getNode(Activator.getPluginId()); + c.setPackedGitLimit(p.getInt(GitCorePreferences.core_packedGitLimit, d.getInt(GitCorePreferences.core_packedGitLimit, 0))); + c.setPackedGitWindowSize(p.getInt(GitCorePreferences.core_packedGitWindowSize, d.getInt(GitCorePreferences.core_packedGitWindowSize, 0))); + c.setPackedGitMMAP(p.getBoolean(GitCorePreferences.core_packedGitMMAP, d.getBoolean(GitCorePreferences.core_packedGitMMAP, false))); + c.setDeltaBaseCacheLimit(p.getInt(GitCorePreferences.core_deltaBaseCacheLimit, d.getInt(GitCorePreferences.core_deltaBaseCacheLimit, 0))); WindowCache.reconfigure(c); } diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/Activator.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/Activator.java index 0aad97f07a..82bf403de4 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/Activator.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/Activator.java @@ -1,6 +1,7 @@ /******************************************************************************* * Copyright (C) 2007, Robin Rosenberg <robin.rosenberg@dewire.com> * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> + * Copyright (C) 2010, Mathias Kinzler <mathias.kinzler@sap.com> * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -30,6 +31,7 @@ import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.SubProgressMonitor; import org.eclipse.core.runtime.jobs.ISchedulingRule; import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.core.runtime.preferences.InstanceScope; import org.eclipse.egit.core.project.RepositoryMapping; import org.eclipse.egit.ui.internal.trace.GitTraceLocation; import org.eclipse.jface.util.IPropertyChangeListener; @@ -256,8 +258,10 @@ public class Activator extends AbstractUIPlugin { public void indexChanged(IndexChangedEvent e) { // Check the workspace setting "refresh automatically" setting first - if (!ResourcesPlugin.getPlugin().getPluginPreferences().getBoolean( - ResourcesPlugin.PREF_AUTO_REFRESH)) + boolean autoRefresh = new InstanceScope().getNode( + ResourcesPlugin.getPlugin().getBundle().getSymbolicName()) + .getBoolean(ResourcesPlugin.PREF_AUTO_REFRESH, false); + if (!autoRefresh) return; IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects(); diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/PluginPreferenceInitializer.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/PluginPreferenceInitializer.java index 95dda41337..d244479e4d 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/PluginPreferenceInitializer.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/PluginPreferenceInitializer.java @@ -1,6 +1,7 @@ /******************************************************************************* * Copyright (C) 2008, Roger C. Soares <rogersoares@intelinet.com.br> * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> + * Copyright (C) 2010, Mathias Kinzler <mathias.kinzler@sap.com> * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -9,8 +10,8 @@ *******************************************************************************/ package org.eclipse.egit.ui; -import org.eclipse.core.runtime.Preferences; import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; +import org.eclipse.jface.preference.IPreferenceStore; /** * Plugin extension point to initialize the plugin runtime preferences. @@ -28,38 +29,36 @@ public class PluginPreferenceInitializer extends AbstractPreferenceInitializer { * This method initializes the plugin preferences with default values. */ public void initializeDefaultPreferences() { - Preferences prefs = Activator.getDefault().getPluginPreferences(); + IPreferenceStore store = Activator.getDefault().getPreferenceStore(); int[] w; - prefs.setDefault(UIPreferences.RESOURCEHISTORY_SHOW_COMMENT_WRAP, true); - prefs.setDefault(UIPreferences.RESOURCEHISTORY_SHOW_REV_DETAIL, true); - prefs.setDefault(UIPreferences.RESOURCEHISTORY_SHOW_REV_COMMENT, true); - prefs.setDefault(UIPreferences.RESOURCEHISTORY_SHOW_TOOLTIPS, false); + store.setDefault(UIPreferences.RESOURCEHISTORY_SHOW_COMMENT_WRAP, true); + store.setDefault(UIPreferences.RESOURCEHISTORY_SHOW_REV_DETAIL, true); + store.setDefault(UIPreferences.RESOURCEHISTORY_SHOW_REV_COMMENT, true); + store.setDefault(UIPreferences.RESOURCEHISTORY_SHOW_TOOLTIPS, false); - prefs.setDefault(UIPreferences.DECORATOR_RECOMPUTE_ANCESTORS, true); - prefs.setDefault(UIPreferences.DECORATOR_RECURSIVE_LIMIT, + store.setDefault(UIPreferences.DECORATOR_RECOMPUTE_ANCESTORS, true); + store.setDefault(UIPreferences.DECORATOR_RECURSIVE_LIMIT, Integer.MAX_VALUE); - prefs.setDefault(UIPreferences.DECORATOR_FILETEXT_DECORATION, + store.setDefault(UIPreferences.DECORATOR_FILETEXT_DECORATION, UIText.DecoratorPreferencesPage_fileFormatDefault); - prefs.setDefault(UIPreferences.DECORATOR_FOLDERTEXT_DECORATION, + store.setDefault(UIPreferences.DECORATOR_FOLDERTEXT_DECORATION, UIText.DecoratorPreferencesPage_folderFormatDefault); - prefs.setDefault(UIPreferences.DECORATOR_PROJECTTEXT_DECORATION, + store.setDefault(UIPreferences.DECORATOR_PROJECTTEXT_DECORATION, UIText.DecoratorPreferencesPage_projectFormatDefault); - prefs.setDefault(UIPreferences.DECORATOR_SHOW_TRACKED_ICON, true); - prefs.setDefault(UIPreferences.DECORATOR_SHOW_UNTRACKED_ICON, true); - prefs.setDefault(UIPreferences.DECORATOR_SHOW_STAGED_ICON, true); - prefs.setDefault(UIPreferences.DECORATOR_SHOW_CONFLICTS_ICON, true); - prefs.setDefault(UIPreferences.DECORATOR_SHOW_ASSUME_VALID_ICON, true); + store.setDefault(UIPreferences.DECORATOR_SHOW_TRACKED_ICON, true); + store.setDefault(UIPreferences.DECORATOR_SHOW_UNTRACKED_ICON, true); + store.setDefault(UIPreferences.DECORATOR_SHOW_STAGED_ICON, true); + store.setDefault(UIPreferences.DECORATOR_SHOW_CONFLICTS_ICON, true); + store.setDefault(UIPreferences.DECORATOR_SHOW_ASSUME_VALID_ICON, true); w = new int[] { 500, 500 }; - UIPreferences.setDefault(prefs, - UIPreferences.RESOURCEHISTORY_GRAPH_SPLIT, w); + store.setDefault(UIPreferences.RESOURCEHISTORY_GRAPH_SPLIT, UIPreferences.intArrayToString(w)); w = new int[] { 700, 300 }; - UIPreferences.setDefault(prefs, - UIPreferences.RESOURCEHISTORY_REV_SPLIT, w); + store.setDefault(UIPreferences.RESOURCEHISTORY_REV_SPLIT, UIPreferences.intArrayToString(w)); - prefs.setDefault(UIPreferences.FINDTOOLBAR_IGNORE_CASE, true); - prefs.setDefault(UIPreferences.FINDTOOLBAR_FIND_IN, 2); + store.setDefault(UIPreferences.FINDTOOLBAR_IGNORE_CASE, true); + store.setDefault(UIPreferences.FINDTOOLBAR_FIND_IN, 2); } } diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/UIPreferences.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/UIPreferences.java index 62201da332..eb831ea206 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/UIPreferences.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/UIPreferences.java @@ -2,6 +2,7 @@ * Copyright (C) 2008, Robin Rosenberg <robin.rosenberg@dewire.com> * Copyright (C) 2008, Roger C. Soares <rogersoares@intelinet.com.br> * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> + * Copyright (C) 2010, Mathias Kinzler <mathias.kinzler@sap.com> * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -10,11 +11,11 @@ *******************************************************************************/ package org.eclipse.egit.ui; -import org.eclipse.core.runtime.Preferences; /** - * Preferences used by the plugin. - * All plugin preferences shall be referenced by a constant in this class. + * Preferences used by the EGit UI plug-in. + * <p> + * All plug-in preferences shall be referenced by a constant in this class. */ public class UIPreferences { /** */ @@ -81,22 +82,18 @@ public class UIPreferences { public final static String DECORATOR_SHOW_ASSUME_VALID_ICON = "decorator_show_assume_valid_icon"; //$NON-NLS-1$ /** - * Get the preference values associated with a fixed integer array. + * Converts a persisted String separated with commas to an integer array * - * @param prefs - * the store to read. - * @param key - * key name. + * @param value + * the String value * @param cnt - * number of entries in the returned array. + * number of entries in the returned array * @return the preference values for the array. */ - public static int[] getIntArray(final Preferences prefs, final String key, - final int cnt) { - final String s = prefs.getString(key); + public static int[] stringToIntArray(final String value, final int cnt) { final int[] r = new int[cnt]; - if (s != null) { - final String[] e = s.split(","); //$NON-NLS-1$ + if (value != null) { + final String[] e = value.split(","); //$NON-NLS-1$ for (int i = 0; i < Math.min(e.length, r.length); i++) r[i] = Integer.parseInt(e[i].trim()); } @@ -104,44 +101,19 @@ public class UIPreferences { } /** - * Set the preference values associated with a fixed integer array. + * Converts an integer array into a String separated by commas * - * @param prefs - * the store to read. - * @param key - * key name. * @param data - * entries to store. + * integers to store + * @return the String */ - public static void setValue(final Preferences prefs, final String key, - final int[] data) { + public static String intArrayToString(final int[] data) { final StringBuilder s = new StringBuilder(); for (int i = 0; i < data.length; i++) { if (i > 0) s.append(','); s.append(data[i]); } - prefs.setValue(key, s.toString()); - } - - /** - * Set the preference values associated with a fixed integer array. - * - * @param prefs - * the store to read. - * @param key - * key nam - * @param data - * entries to store. - */ - public static void setDefault(final Preferences prefs, final String key, - final int[] data) { - final StringBuilder s = new StringBuilder(); - for (int i = 0; i < data.length; i++) { - if (i > 0) - s.append(','); - s.append(data[i]); - } - prefs.setDefault(key, s.toString()); + return s.toString(); } } diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FindToolbar.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FindToolbar.java index 8696524118..494faee236 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FindToolbar.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FindToolbar.java @@ -2,6 +2,7 @@ * Copyright (C) 2007, Dave Watson <dwatson@mimvista.com> * Copyright (C) 2008, Roger C. Soares <rogersoares@intelinet.com.br> * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> + * Copyright (C) 2010, Mathias Kinzler <mathias.kinzler@sap.com> * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -10,14 +11,16 @@ *******************************************************************************/ package org.eclipse.egit.ui.internal.history; +import java.io.IOException; import java.util.ArrayList; import java.util.List; -import org.eclipse.core.runtime.Preferences; import org.eclipse.egit.ui.Activator; import org.eclipse.egit.ui.UIIcons; import org.eclipse.egit.ui.UIPreferences; import org.eclipse.egit.ui.UIText; +import org.eclipse.jface.preference.IPersistentPreferenceStore; +import org.eclipse.jgit.revwalk.RevFlag; import org.eclipse.swt.SWT; import org.eclipse.swt.events.KeyAdapter; import org.eclipse.swt.events.KeyEvent; @@ -46,7 +49,6 @@ import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; import org.eclipse.swt.widgets.Widget; -import org.eclipse.jgit.revwalk.RevFlag; /** * A toolbar for the history page. @@ -71,7 +73,7 @@ public class FindToolbar extends Composite { */ public final FindResults findResults = new FindResults(); - private Preferences prefs = Activator.getDefault().getPluginPreferences(); + private IPersistentPreferenceStore store = (IPersistentPreferenceStore) Activator.getDefault().getPreferenceStore(); private List<Listener> eventList = new ArrayList<Listener>(); @@ -182,7 +184,7 @@ public class FindToolbar extends Composite { prefsMenu.setLocation(point); prefsMenu.setVisible(true); } else { - switch (prefs.getInt(UIPreferences.FINDTOOLBAR_FIND_IN)) { + switch (store.getInt(UIPreferences.FINDTOOLBAR_FIND_IN)) { case PREFS_FINDIN_COMMITID: commentsItem.notifyListeners(SWT.Selection, null); break; @@ -305,16 +307,22 @@ public class FindToolbar extends Composite { caseItem.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { - prefs.setValue(UIPreferences.FINDTOOLBAR_IGNORE_CASE, caseItem - .getSelection()); - Activator.getDefault().savePluginPreferences(); + store.setValue(UIPreferences.FINDTOOLBAR_IGNORE_CASE, + caseItem.getSelection()); + if (store.needsSaving()){ + try { + store.save(); + } catch (IOException e1) { + Activator.handleError(e1.getMessage(), e1, false); + } + } clear(); } }); - caseItem.setSelection(prefs + caseItem.setSelection(store .getBoolean(UIPreferences.FINDTOOLBAR_IGNORE_CASE)); - int selectedPrefsItem = prefs.getInt(UIPreferences.FINDTOOLBAR_FIND_IN); + int selectedPrefsItem = store.getInt(UIPreferences.FINDTOOLBAR_FIND_IN); commitIdItem.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { @@ -378,8 +386,14 @@ public class FindToolbar extends Composite { } private void prefsItemChanged(int findin, MenuItem item) { - prefs.setValue(UIPreferences.FINDTOOLBAR_FIND_IN, findin); - Activator.getDefault().savePluginPreferences(); + store.setValue(UIPreferences.FINDTOOLBAR_FIND_IN, findin); + if (store.needsSaving()){ + try { + store.save(); + } catch (IOException e) { + Activator.handleError(e.getMessage(), e, false); + } + } commitIdItem.setSelection(false); commentsItem.setSelection(false); authorItem.setSelection(false); diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java index 6ed15f3fd0..ff31a1469f 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java @@ -2,6 +2,7 @@ * Copyright (C) 2008, Roger C. Soares <rogersoares@intelinet.com.br> * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> * Copyright (c) 2010, Stefan Lay <stefan.lay@sap.com> + * Copyright (C) 2010, Mathias Kinzler <mathias.kinzler@sap.com> * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -23,9 +24,6 @@ import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.core.runtime.Preferences; -import org.eclipse.core.runtime.Preferences.IPropertyChangeListener; -import org.eclipse.core.runtime.Preferences.PropertyChangeEvent; import org.eclipse.core.runtime.jobs.IJobChangeEvent; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.core.runtime.jobs.JobChangeAdapter; @@ -47,9 +45,12 @@ import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.preference.IPersistentPreferenceStore; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.text.ITextOperationTarget; +import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.OpenStrategy; +import org.eclipse.jface.util.PropertyChangeEvent; import org.eclipse.jface.viewers.IOpenListener; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.ISelectionChangedListener; @@ -143,6 +144,8 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener { // does not do this for us) private final List<BooleanPrefAction> actionsToDispose = new ArrayList<BooleanPrefAction>(); + private final IPersistentPreferenceStore store = (IPersistentPreferenceStore) Activator.getDefault().getPreferenceStore(); + /** * Determine if the input can be shown in this viewer. * @@ -188,9 +191,6 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener { return false; } - /** Plugin private preference store for the current workspace. */ - private Preferences prefs; - /** Overall composite hosting all of our controls. */ private Composite ourControl; @@ -373,7 +373,6 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener { public void createControl(final Composite parent) { GridData gd; - prefs = Activator.getDefault().getPluginPreferences(); ourControl = createMainPanel(parent); gd = new GridData(); gd.verticalAlignment = SWT.FILL; @@ -604,10 +603,17 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener { sf.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { final int[] w = sf.getWeights(); - UIPreferences.setValue(prefs, key, w); + store.putValue(key, UIPreferences.intArrayToString(w)); + if (store.needsSaving()) + try { + store.save(); + } catch (IOException e1) { + Activator.handleError(e1.getMessage(), e1, false); + } + } }); - sf.setWeights(UIPreferences.getIntArray(prefs, key, 2)); + sf.setWeights(UIPreferences.stringToIntArray(store.getString(key), 2)); } private Composite createMainPanel(final Composite parent) { @@ -621,9 +627,9 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener { } private void layout() { - final boolean showComment = prefs.getBoolean(SHOW_COMMENT); - final boolean showFiles = prefs.getBoolean(SHOW_FILES); - final boolean showFindToolbar = prefs.getBoolean(SHOW_FIND_TOOLBAR); + final boolean showComment = store.getBoolean(SHOW_COMMENT); + final boolean showFiles = store.getBoolean(SHOW_FILES); + final boolean showFindToolbar = store.getBoolean(SHOW_FIND_TOOLBAR); if (showComment && showFiles) { graphDetailSplit.setMaximizedControl(null); @@ -691,11 +697,18 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener { private IAction createFindToolbarAction() { final IAction r = new Action(UIText.GitHistoryPage_find, UIIcons.ELCL16_FIND) { public void run() { - prefs.setValue(SHOW_FIND_TOOLBAR, isChecked()); + store.setValue(SHOW_FIND_TOOLBAR, isChecked()); + if (store.needsSaving()) { + try { + store.save(); + } catch (IOException e) { + Activator.handleError(e.getMessage(), e, false); + } + } layout(); } }; - r.setChecked(prefs.getBoolean(SHOW_FIND_TOOLBAR)); + r.setChecked(store.getBoolean(SHOW_FIND_TOOLBAR)); r.setToolTipText(UIText.HistoryPage_findbar_findTooltip); return r; } @@ -828,7 +841,6 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener { ((ActionFactory.IWorkbenchAction) i).dispose(); } } - Activator.getDefault().savePluginPreferences(); super.dispose(); } @@ -1102,12 +1114,19 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener { BooleanPrefAction(final String pn, final String text) { setText(text); prefName = pn; - prefs.addPropertyChangeListener(this); - setChecked(prefs.getBoolean(prefName)); + store.addPropertyChangeListener(this); + setChecked(store.getBoolean(prefName)); } public void run() { - prefs.setValue(prefName, isChecked()); + store.setValue(prefName, isChecked()); + if (store.needsSaving()) { + try { + store.save(); + } catch (IOException e) { + Activator.handleError(e.getMessage(), e, false); + } + } apply(isChecked()); } @@ -1115,14 +1134,14 @@ public class GitHistoryPage extends HistoryPage implements RepositoryListener { public void propertyChange(final PropertyChangeEvent event) { if (prefName.equals(event.getProperty())) { - setChecked(prefs.getBoolean(prefName)); + setChecked(store.getBoolean(prefName)); apply(isChecked()); } } public void dispose() { // stop listening - prefs.removePropertyChangeListener(this); + store.removePropertyChangeListener(this); } } diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/GitDecoratorPreferencePage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/GitDecoratorPreferencePage.java index 0fd15fcdfe..8a4b9baedb 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/GitDecoratorPreferencePage.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/GitDecoratorPreferencePage.java @@ -1,6 +1,7 @@ /******************************************************************************* * Copyright (c) 2000, 2007 IBM Corporation and others. * Copyright (C) 2009, Tor Arne Vestbø <torarnv@gmail.com> + * Copyright (C) 2010, Mathias Kinzler <mathias.kinzler@sap.com> * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -9,6 +10,7 @@ *******************************************************************************/ package org.eclipse.egit.ui.internal.preferences; +import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -28,6 +30,7 @@ import org.eclipse.egit.ui.internal.decorators.IDecoratableResource; import org.eclipse.egit.ui.internal.decorators.GitLightweightDecorator.DecorationHelper; import org.eclipse.egit.ui.internal.decorators.IDecoratableResource.Staged; import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.preference.IPersistentPreferenceStore; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.jface.preference.PreferenceStore; @@ -613,9 +616,13 @@ public class GitDecoratorPreferencePage extends PreferencePage implements IPreferenceStore store = getPreferenceStore(); final boolean okToClose = performOk(store); if (store.needsSaving()) { - Activator.getDefault().savePluginPreferences(); - Activator.broadcastPropertyChange(new PropertyChangeEvent(this, - Activator.DECORATORS_CHANGED, null, null)); + try { + ((IPersistentPreferenceStore)store).save(); + Activator.broadcastPropertyChange(new PropertyChangeEvent(this, + Activator.DECORATORS_CHANGED, null, null)); + } catch (IOException e) { + Activator.handleError(e.getMessage(), e, true); + } } return okToClose; } diff --git a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/HistoryPreferencePage.java b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/HistoryPreferencePage.java index 65a5059a56..624ef980b1 100644 --- a/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/HistoryPreferencePage.java +++ b/org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/HistoryPreferencePage.java @@ -1,5 +1,6 @@ /******************************************************************************* * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org> + * Copyright (C) 2010, Mathias Kinzler <mathias.kinzler@sap.com> * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 @@ -41,7 +42,6 @@ public class HistoryPreferencePage extends FieldEditorPreferencePage } public boolean performOk() { - Activator.getDefault().savePluginPreferences(); return super.performOk(); } |