re-factoring to seperate preferenceStore dependency from non-ui plugins, use a wrapper of the common.ui preference store instead.
diff --git a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/BreakdownElementPrefPage.java b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/BreakdownElementPrefPage.java
index 82a6432..2164467 100644
--- a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/BreakdownElementPrefPage.java
+++ b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/BreakdownElementPrefPage.java
@@ -11,6 +11,8 @@
 package org.eclipse.epf.authoring.ui.preferences;
 
 import org.eclipse.epf.authoring.ui.AuthoringUIResources;
+import org.eclipse.epf.common.preferences.IPreferenceStoreWrapper;
+import org.eclipse.epf.common.ui.PreferenceStoreWrapper;
 import org.eclipse.epf.library.LibraryPlugin;
 import org.eclipse.epf.library.ui.LibraryUIPlugin;
 import org.eclipse.epf.library.ui.preferences.LibraryUIPreferences;
@@ -240,7 +242,11 @@
 	 * @see org.eclipse.epf.authoring.ui.preferences.CommonPrefPage#doGetPreferenceStore()
 	 */
 	protected IPreferenceStore doGetPreferenceStore() {
-		return (IPreferenceStore)LibraryPlugin.getDefault().getPreferenceStore().getStore();
+		IPreferenceStoreWrapper wrapper = LibraryPlugin.getDefault().getPreferenceStore();
+		if ( wrapper instanceof PreferenceStoreWrapper ) {
+			return ((PreferenceStoreWrapper)wrapper).getStore();
+		}
+		return null;
 	}
 
 }
diff --git a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/CommonPrefPage.java b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/CommonPrefPage.java
index 6f8ddf9..d51be52 100644
--- a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/CommonPrefPage.java
+++ b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/CommonPrefPage.java
@@ -10,6 +10,8 @@
 //------------------------------------------------------------------------------
 package org.eclipse.epf.authoring.ui.preferences;
 
+import org.eclipse.epf.common.preferences.IPreferenceStoreWrapper;
+import org.eclipse.epf.common.ui.PreferenceStoreWrapper;
 import org.eclipse.epf.library.LibraryPlugin;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferencePage;
@@ -122,7 +124,11 @@
 	 */
 	protected IPreferenceStore doGetPreferenceStore() {
 
-		return (IPreferenceStore)LibraryPlugin.getDefault().getPreferenceStore().getStore();
+		IPreferenceStoreWrapper wrapper = LibraryPlugin.getDefault().getPreferenceStore();
+		if ( wrapper instanceof PreferenceStoreWrapper ) {
+			return ((PreferenceStoreWrapper)wrapper).getStore();
+		}
+		return null;
 		// return PlatformUI.getWorkbench().getPreferenceStore();
 
 	}
diff --git a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/LibraryLocationData.java b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/LibraryLocationData.java
index 21fa5a7..0766b40 100644
--- a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/LibraryLocationData.java
+++ b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/LibraryLocationData.java
@@ -12,6 +12,7 @@
 
 import java.io.File;
 
+import org.eclipse.epf.common.preferences.IPreferenceStoreWrapper;
 import org.eclipse.epf.common.ui.CommonUIPlugin;
 import org.eclipse.epf.library.LibraryPlugin;
 import org.eclipse.epf.library.prefs.LibraryPreferenceConstants;
@@ -144,8 +145,8 @@
 	 *
 	 */
 	public void loadFromPreferenceStore() {
-		IPreferenceStore store = (IPreferenceStore)LibraryPlugin.getDefault()
-				.getPreferenceStore().getStore();
+		IPreferenceStoreWrapper store = LibraryPlugin.getDefault()
+				.getPreferenceStore();
 
 		String lastDir = store
 				.getString(LibraryPreferenceConstants.PREF_LAST_LIBRARY_PARENT_DIRECTORY);
@@ -167,8 +168,8 @@
 	 *
 	 */
 	public void saveToPreferenceStore() {
-		IPreferenceStore store = (IPreferenceStore)LibraryPlugin.getDefault()
-				.getPreferenceStore().getStore();
+		IPreferenceStoreWrapper store = LibraryPlugin.getDefault()
+				.getPreferenceStore();
 		File file = new File(this.getParentFolder());
 		LibraryUIPreferences.setSavedLibraryPath(file.getAbsolutePath());
 		store.setValue(
diff --git a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/LibraryPreferenceInitializer.java b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/LibraryPreferenceInitializer.java
index ecf9c14..d1d2478 100644
--- a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/LibraryPreferenceInitializer.java
+++ b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/LibraryPreferenceInitializer.java
@@ -12,6 +12,7 @@
 
 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
 import org.eclipse.epf.authoring.ui.editors.ProcessEditor;
+import org.eclipse.epf.common.preferences.IPreferenceStoreWrapper;
 import org.eclipse.epf.library.LibraryPlugin;
 import org.eclipse.epf.library.prefs.LibraryPreferenceConstants;
 import org.eclipse.jface.preference.IPreferenceStore;
@@ -29,8 +30,8 @@
 	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
 	 */
 	public void initializeDefaultPreferences() {
-		IPreferenceStore store = (IPreferenceStore)LibraryPlugin.getDefault()
-				.getPreferenceStore().getStore();
+		IPreferenceStoreWrapper store = LibraryPlugin.getDefault()
+				.getPreferenceStore();
 		store.setDefault(LibraryPreferenceConstants.PREF_RADIO_SAVE_CHOICE, 1);
 		
 		store.setDefault(ApplicationPreferenceConstants.PREF_WBS_COLUMNS,
diff --git a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/ProcessEditorPreferencePage.java b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/ProcessEditorPreferencePage.java
index 6eada20..3d7beeb 100644
--- a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/ProcessEditorPreferencePage.java
+++ b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/ProcessEditorPreferencePage.java
@@ -18,6 +18,8 @@
 import org.eclipse.epf.authoring.ui.AuthoringUIText;
 import org.eclipse.epf.authoring.ui.editors.ColumnDescriptor;
 import org.eclipse.epf.authoring.ui.editors.ProcessEditor;
+import org.eclipse.epf.common.preferences.IPreferenceStoreWrapper;
+import org.eclipse.epf.common.ui.PreferenceStoreWrapper;
 import org.eclipse.epf.library.LibraryPlugin;
 import org.eclipse.epf.library.ui.LibraryUIResources;
 import org.eclipse.epf.library.ui.preferences.LibraryUIPreferences;
@@ -231,7 +233,11 @@
 	 * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
 	 */
 	protected IPreferenceStore doGetPreferenceStore() {
-		return (IPreferenceStore)LibraryPlugin.getDefault().getPreferenceStore().getStore();
+		IPreferenceStoreWrapper wrapper = LibraryPlugin.getDefault().getPreferenceStore();
+		if ( wrapper instanceof PreferenceStoreWrapper ) {
+			return ((PreferenceStoreWrapper)wrapper).getStore();
+		}
+		return null;
 	}
 
 	/**
@@ -676,6 +682,10 @@
 		// we need to share the preference in Library browsing and publishing
 		// Jinhua Xi 08/19/2006
 		// changed to use CommonUIPlugin store
-		return (IPreferenceStore)LibraryPlugin.getDefault().getPreferenceStore().getStore();
+		IPreferenceStoreWrapper wrapper = LibraryPlugin.getDefault().getPreferenceStore();
+		if ( wrapper instanceof PreferenceStoreWrapper ) {
+			return ((PreferenceStoreWrapper)wrapper).getStore();
+		}
+		return null;
 	}
 }
diff --git a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/RootPrefPage.java b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/RootPrefPage.java
index 1ca8409..a9ede34 100644
--- a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/RootPrefPage.java
+++ b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/preferences/RootPrefPage.java
@@ -10,7 +10,9 @@
 //------------------------------------------------------------------------------
 package org.eclipse.epf.authoring.ui.preferences;
 
+import org.eclipse.epf.common.preferences.IPreferenceStoreWrapper;
 import org.eclipse.epf.common.ui.CommonUIPlugin;
+import org.eclipse.epf.common.ui.PreferenceStoreWrapper;
 import org.eclipse.epf.library.LibraryPlugin;
 import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.preference.PreferencePage;
@@ -90,7 +92,11 @@
 	 * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
 	 */
 	protected IPreferenceStore doGetPreferenceStore() {
-		return (IPreferenceStore)LibraryPlugin.getDefault().getPreferenceStore().getStore();
+		IPreferenceStoreWrapper wrapper = LibraryPlugin.getDefault().getPreferenceStore();
+		if ( wrapper instanceof PreferenceStoreWrapper ) {
+			return ((PreferenceStoreWrapper)wrapper).getStore();
+		}
+		return null;
 	}
 
 	/**
diff --git a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/properties/ActivityRollupSection.java b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/properties/ActivityRollupSection.java
index 9344536..fb6e00a 100644
--- a/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/properties/ActivityRollupSection.java
+++ b/2.0/plugins/org.eclipse.epf.authoring.ui/src/org/eclipse/epf/authoring/ui/properties/ActivityRollupSection.java
@@ -20,6 +20,7 @@
 import org.eclipse.epf.authoring.ui.editors.ColumnDescriptor;
 import org.eclipse.epf.authoring.ui.providers.ExposedAdapterFactoryContentProvider;
 import org.eclipse.epf.authoring.ui.views.ProcessViewer;
+import org.eclipse.epf.common.preferences.IPreferenceStoreWrapper;
 import org.eclipse.epf.library.LibraryPlugin;
 import org.eclipse.epf.library.edit.process.IBSItemProvider;
 import org.eclipse.epf.library.edit.process.IColumnAware;
@@ -61,7 +62,7 @@
 	// action manager
 	// protected IActionManager actionMgr;
 
-	protected IPreferenceStore store;
+	protected IPreferenceStoreWrapper store;
 
 	protected ColumnDescriptor[] columnDescriptors;
 
@@ -83,7 +84,7 @@
 		toolkit = getWidgetFactory();
 
 		// get preference store
-		store = (IPreferenceStore)LibraryPlugin.getDefault().getPreferenceStore().getStore();
+		store = LibraryPlugin.getDefault().getPreferenceStore();
 	}
 
 	/**
diff --git a/2.0/plugins/org.eclipse.epf.common.ui/src/org/eclipse/epf/common/ui/PreferenceStoreWrapper.java b/2.0/plugins/org.eclipse.epf.common.ui/src/org/eclipse/epf/common/ui/PreferenceStoreWrapper.java
index 0d62ccc..6b838d6 100644
--- a/2.0/plugins/org.eclipse.epf.common.ui/src/org/eclipse/epf/common/ui/PreferenceStoreWrapper.java
+++ b/2.0/plugins/org.eclipse.epf.common.ui/src/org/eclipse/epf/common/ui/PreferenceStoreWrapper.java
@@ -24,7 +24,7 @@
 	
 	Map<IPropertyChangeListenerWrapper, IPropertyChangeListener> listenerMap = new HashMap<IPropertyChangeListenerWrapper, IPropertyChangeListener>();
 	
-	public Object getStore() {
+	public IPreferenceStore getStore() {
 		return store;
 	}
 
diff --git a/2.0/plugins/org.eclipse.epf.common/src/org/eclipse/epf/common/preferences/IPreferenceStoreWrapper.java b/2.0/plugins/org.eclipse.epf.common/src/org/eclipse/epf/common/preferences/IPreferenceStoreWrapper.java
index 183433f..c0f1896 100644
--- a/2.0/plugins/org.eclipse.epf.common/src/org/eclipse/epf/common/preferences/IPreferenceStoreWrapper.java
+++ b/2.0/plugins/org.eclipse.epf.common/src/org/eclipse/epf/common/preferences/IPreferenceStoreWrapper.java
@@ -10,7 +10,7 @@
  */
 public interface IPreferenceStoreWrapper {
 
-	public Object getStore();
+	//public Object getStore();
 	
 	public void addPropertyChangeListener(IPropertyChangeListenerWrapper listener);
 	public void firePropertyChangeEvent(String name, Object oldValue,
diff --git a/2.0/plugins/org.eclipse.epf.library.edit/src/org/eclipse/epf/library/edit/internal/TngAdapterFactoryImpl.java b/2.0/plugins/org.eclipse.epf.library.edit/src/org/eclipse/epf/library/edit/internal/TngAdapterFactoryImpl.java
index b55f848..b394a16 100644
--- a/2.0/plugins/org.eclipse.epf.library.edit/src/org/eclipse/epf/library/edit/internal/TngAdapterFactoryImpl.java
+++ b/2.0/plugins/org.eclipse.epf.library.edit/src/org/eclipse/epf/library/edit/internal/TngAdapterFactoryImpl.java
@@ -38,6 +38,7 @@
 import org.eclipse.emf.edit.provider.ItemProviderAdapter;
 import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
 import org.eclipse.epf.common.preferences.IPreferenceStoreWrapper;
+import org.eclipse.epf.common.ui.PreferenceStoreWrapper;
 import org.eclipse.epf.library.edit.IConfigurable;
 import org.eclipse.epf.library.edit.IConfigurator;
 import org.eclipse.epf.library.edit.IFilter;
@@ -882,8 +883,16 @@
 			// remove adapter factory as property change listener from
 			// preference store
 			//
-			IPreferenceStore prefStore = 
-				(IPreferenceStore)Providers.getAuthoringPluginPreferenceStore().getStore();
+			
+			// PreferenceStoreWrapper is not visible in this plugin,
+			// need to use the wrappers, this requires changes to the property change listeners in the procAdapterFactories
+			// TODO
+			IPreferenceStore prefStore = null;
+			IPreferenceStoreWrapper wrapper = Providers.getAuthoringPluginPreferenceStore();
+			if ( wrapper instanceof PreferenceStoreWrapper ) {
+				prefStore = ((PreferenceStoreWrapper)wrapper).getStore();
+			}
+			
 			if (prefStore != null) {
 				for (int i = 0; i < procAdapterFactories.length; i++) {
 					Object adapterFactory = procAdapterFactories[i];