only one page instance per selection kind
diff --git a/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/masterdetail/PropertiesMasterDetail.java b/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/masterdetail/PropertiesMasterDetail.java
index c7d11af..efecfb2 100644
--- a/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/masterdetail/PropertiesMasterDetail.java
+++ b/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/masterdetail/PropertiesMasterDetail.java
@@ -8,7 +8,7 @@
  * Contributors:
  *     Anyware Technologies - initial API and implementation
  *
- * $Id: PropertiesMasterDetail.java,v 1.9 2009/07/06 21:08:14 bcabe Exp $
+ * $Id: PropertiesMasterDetail.java,v 1.10 2009/07/07 09:36:46 bcabe Exp $
  */
 package org.eclipse.pde.ds.ui.internal.editor.masterdetail;
 
@@ -33,11 +33,13 @@
 	}
 
 	public IDetailsPage getPage(Object key) {
-		if (key instanceof Properties) {
-			return new PropertiesDetailsPart(parentEditor);
-		}
-		if (key instanceof Property) {
-			return new PropertyDetailsPart(parentEditor);
+		if (key instanceof Class<?>) {
+			if (Properties.class.isAssignableFrom((Class<?>) key)) {
+				return new PropertiesDetailsPart(parentEditor);
+			}
+			if (Property.class.isAssignableFrom((Class<?>) key)) {
+				return new PropertyDetailsPart(parentEditor);
+			}
 		}
 		return null;
 	}
diff --git a/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/masterdetail/ServicesMasterDetail.java b/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/masterdetail/ServicesMasterDetail.java
index 739bb9f..a3851c7 100644
--- a/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/masterdetail/ServicesMasterDetail.java
+++ b/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/masterdetail/ServicesMasterDetail.java
@@ -8,10 +8,12 @@
  * Contributors:
  *     Anyware Technologies - initial API and implementation
  *
- * $Id: ServicesMasterDetail.java,v 1.3 2009/07/07 09:36:46 bcabe Exp $
+ * $Id: ServicesMasterDetail.java,v 1.4 2009/07/07 21:52:28 bcabe Exp $
  */
 package org.eclipse.pde.ds.ui.internal.editor.masterdetail;
 
+import org.eclipse.pde.ds.scr.Properties;
+
 import java.util.ArrayList;
 import java.util.List;
 import org.eclipse.core.databinding.DataBindingContext;
@@ -88,13 +90,14 @@
 	}
 
 	public IDetailsPage getPage(Object key) {
-		if (key instanceof Reference) {
+		if (key instanceof Class<?>) {
+			if (Reference.class.isAssignableFrom((Class<?>) key)) {
 			return new ReferenceDetailsPart(parentEditor);
 		}
-		if (key instanceof Provide) {
-			return new ProvideDetailsPart(parentEditor);
+			if (Provide.class.isAssignableFrom((Class<?>) key)) {
+						return new ProvideDetailsPart(parentEditor);
 		}
-		return null;
+		}		return null;
 	}
 
 	public Button getBtnAddProvided() {
diff --git a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfMasterDetailBlock.java b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfMasterDetailBlock.java
index 75d81e9..258acc7 100644
--- a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfMasterDetailBlock.java
+++ b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfMasterDetailBlock.java
@@ -8,7 +8,7 @@
  * Contributors:
  *     Anyware Technologies - initial API and implementation
  *
- * $Id: EmfMasterDetailBlock.java,v 1.3 2009/07/07 09:36:40 bcabe Exp $
+ * $Id: EmfMasterDetailBlock.java,v 1.4 2009/07/13 18:28:48 bcabe Exp $
  */
 package org.eclipse.pde.emfforms.editor;
 
@@ -129,7 +129,7 @@
 	}
 
 	public Object getPageKey(Object object) {
-		return AdapterFactoryEditingDomain.unwrap(object);
+		return AdapterFactoryEditingDomain.unwrap(object).getClass();
 	}
 
 	public TreeViewer getTreeViewer() {