implementation of both IPreferencesLookupDelegate and IPreferencesSaveDelegate
diff --git a/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/core/PreferencesDelegate.java b/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/core/PreferencesDelegate.java
new file mode 100644
index 0000000..20fc630
--- /dev/null
+++ b/core/plugins/org.eclipse.dltk.core/model/org/eclipse/dltk/core/PreferencesDelegate.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2009 xored software, Inc.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * xored software, Inc. - initial API and Implementation (Alex Panchenko)
+ *******************************************************************************/
+package org.eclipse.dltk.core;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+
+public class PreferencesDelegate extends PreferencesLookupDelegate implements
+ IPreferencesSaveDelegate {
+
+ /**
+ * @param project
+ */
+ public PreferencesDelegate(IProject project) {
+ super(project);
+ }
+
+ private IEclipsePreferences getNode(String qualifier) {
+ return getTopScopeContext().getNode(qualifier);
+ }
+
+ public void setBoolean(String qualifier, String key, boolean value) {
+ getNode(qualifier).putBoolean(key, value);
+ }
+
+ public void setInt(String qualifier, String key, int value) {
+ getNode(qualifier).putInt(key, value);
+ }
+
+ public void setString(String qualifier, String key, String value) {
+ if (value != null) {
+ getNode(qualifier).put(key, value);
+ } else {
+ getNode(qualifier).remove(key);
+ }
+ }
+
+}