Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathias Kinzler2010-06-21 21:51:28 +0000
committerMatthias Sohn2010-06-21 21:51:28 +0000
commitc653c9502f46ea7ee74e3ecd5cb0ea5642bd59ff (patch)
treeecd0dfa37bb1da2c6c8a3139975e0a04d2c1f06b
parent9718f053df30bd6ba3887677da44248f3652621a (diff)
downloadegit-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>
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/GitCorePreferenceInitializer.java13
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java15
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/Activator.java8
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/PluginPreferenceInitializer.java43
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/UIPreferences.java60
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/FindToolbar.java36
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/history/GitHistoryPage.java59
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/GitDecoratorPreferencePage.java13
-rw-r--r--org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/preferences/HistoryPreferencePage.java2
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();
}

Back to the top