Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: editor/tools/plugins/com.google.dart.tools.deploy/src/com/google/dart/tools/ui/theme/preferences/PreviewPreferences.java

Issue 11364134: Merge libv1. (Closed) Base URL: https://dart.googlecode.com/svn/experimental/lib_v2/dart
Patch Set: Reupload due to error Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: editor/tools/plugins/com.google.dart.tools.deploy/src/com/google/dart/tools/ui/theme/preferences/PreviewPreferences.java
diff --git a/editor/tools/plugins/com.google.dart.tools.deploy/src/com/google/dart/tools/ui/theme/preferences/PreviewPreferences.java b/editor/tools/plugins/com.google.dart.tools.deploy/src/com/google/dart/tools/ui/theme/preferences/PreviewPreferences.java
new file mode 100644
index 0000000000000000000000000000000000000000..bc1df1ab94594f1588cee76811a4e82429e0ddd4
--- /dev/null
+++ b/editor/tools/plugins/com.google.dart.tools.deploy/src/com/google/dart/tools/ui/theme/preferences/PreviewPreferences.java
@@ -0,0 +1,199 @@
+package com.google.dart.tools.ui.theme.preferences;
+
+import org.eclipse.core.runtime.ISafeRunnable;
+import org.eclipse.core.runtime.SafeRunner;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.IPreferenceNodeVisitor;
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Provides just enough preference management to update the preview in the preference page, without
+ * also updating all open editors.
+ */
+public class PreviewPreferences implements IEclipsePreferences {
+
+ private Map<String, String> store = new HashMap<String, String>();
+ private List<IEclipsePreferences.IPreferenceChangeListener> listeners = new ArrayList<IEclipsePreferences.IPreferenceChangeListener>();;
+
+ @Override
+ public String absolutePath() {
+ return null;
+ }
+
+ @Override
+ public void accept(IPreferenceNodeVisitor visitor) throws BackingStoreException {
+ }
+
+ @Override
+ public void addNodeChangeListener(INodeChangeListener listener) {
+ }
+
+ @Override
+ public void addPreferenceChangeListener(IPreferenceChangeListener listener) {
+ listeners.add(listener);
+ }
+
+ @Override
+ public String[] childrenNames() throws BackingStoreException {
+ return null;
+ }
+
+ @Override
+ public void clear() throws BackingStoreException {
+ store.clear();
+ }
+
+ @Override
+ public void flush() throws BackingStoreException {
+ }
+
+ @Override
+ public String get(String key, String def) {
+ if (store.containsKey(key)) {
+ return store.get(key);
+ } else {
+ return def;
+ }
+ }
+
+ @Override
+ public boolean getBoolean(String key, boolean def) {
+ return Boolean.parseBoolean(get(key, String.valueOf(def)));
+ }
+
+ @Override
+ public byte[] getByteArray(String key, byte[] def) {
+ return null;
+ }
+
+ @Override
+ public double getDouble(String key, double def) {
+ return 0;
+ }
+
+ @Override
+ public float getFloat(String key, float def) {
+ return 0;
+ }
+
+ @Override
+ public int getInt(String key, int def) {
+ return 0;
+ }
+
+ @Override
+ public long getLong(String key, long def) {
+ return 0;
+ }
+
+ @Override
+ public String[] keys() throws BackingStoreException {
+ return store.keySet().toArray(new String[0]);
+ }
+
+ @Override
+ public String name() {
+ return null;
+ }
+
+ @Override
+ public Preferences node(String path) {
+ return null;
+ }
+
+ @Override
+ public boolean nodeExists(String pathName) throws BackingStoreException {
+ return false;
+ }
+
+ @Override
+ public Preferences parent() {
+ return null;
+ }
+
+ @Override
+ public void put(String key, String value) {
+ Object oldValue = store.get(key);
+ store.put(key, value);
+ firePreferenceEvent(key, oldValue, value);
+ }
+
+ @Override
+ public void putBoolean(String key, boolean value) {
+ put(key, String.valueOf(value));
+ }
+
+ @Override
+ public void putByteArray(String key, byte[] value) {
+ }
+
+ @Override
+ public void putDouble(String key, double value) {
+ }
+
+ @Override
+ public void putFloat(String key, float value) {
+ }
+
+ @Override
+ public void putInt(String key, int value) {
+ put(key, String.valueOf(value));
+ }
+
+ @Override
+ public void putLong(String key, long value) {
+ }
+
+ @Override
+ public void remove(String key) {
+ store.remove(key);
+ }
+
+ @Override
+ public void removeNode() throws BackingStoreException {
+ }
+
+ @Override
+ public void removeNodeChangeListener(INodeChangeListener listener) {
+ }
+
+ @Override
+ public void removePreferenceChangeListener(IPreferenceChangeListener listener) {
+ listeners.remove(listener);
+ }
+
+ @Override
+ public void sync() throws BackingStoreException {
+ }
+
+ /*
+ * Convenience method for notifying preference change listeners.
+ */
+ protected void firePreferenceEvent(String key, Object oldValue, Object newValue) {
+ if (listeners == null) {
+ return;
+ }
+ final PreferenceChangeEvent event = new PreferenceChangeEvent(this, key, oldValue, newValue);
+ for (int i = 0; i < listeners.size(); i++) {
+ final IPreferenceChangeListener listener = listeners.get(i);
+ ISafeRunnable job = new ISafeRunnable() {
+ @Override
+ public void handleException(Throwable exception) {
+ // already logged in Platform#run()
+ }
+
+ @Override
+ public void run() throws Exception {
+ listener.preferenceChange(event);
+ }
+ };
+ SafeRunner.run(job);
+ }
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698