Guidance Related Elements does not show Activities
diff --git a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/AbstractElementLayout.java b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/AbstractElementLayout.java
index e998c25..38d0197 100644
--- a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/AbstractElementLayout.java
+++ b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/AbstractElementLayout.java
@@ -24,6 +24,7 @@
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EClassifier;
 import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.epf.common.utils.FileUtil;
 import org.eclipse.epf.common.utils.NetUtil;
@@ -44,19 +45,27 @@
 import org.eclipse.epf.persistence.MultiFileXMISaveImpl;
 import org.eclipse.epf.uma.Activity;
 import org.eclipse.epf.uma.BreakdownElement;
+import org.eclipse.epf.uma.Checklist;
+import org.eclipse.epf.uma.Concept;
 import org.eclipse.epf.uma.ContentDescription;
 import org.eclipse.epf.uma.ContentElement;
 import org.eclipse.epf.uma.CustomCategory;
 import org.eclipse.epf.uma.DescribableElement;
 import org.eclipse.epf.uma.Descriptor;
+import org.eclipse.epf.uma.Example;
+import org.eclipse.epf.uma.Guideline;
 import org.eclipse.epf.uma.MethodConfiguration;
 import org.eclipse.epf.uma.MethodElement;
 import org.eclipse.epf.uma.MethodElementProperty;
 import org.eclipse.epf.uma.MethodLibrary;
 import org.eclipse.epf.uma.MethodPlugin;
+import org.eclipse.epf.uma.ReusableAsset;
+import org.eclipse.epf.uma.Roadmap;
 import org.eclipse.epf.uma.Role;
+import org.eclipse.epf.uma.SupportingMaterial;
 import org.eclipse.epf.uma.Task;
 import org.eclipse.epf.uma.UmaPackage;
+import org.eclipse.epf.uma.Whitepaper;
 import org.eclipse.epf.uma.WorkOrder;
 import org.eclipse.epf.uma.WorkProduct;
 import org.eclipse.epf.uma.ecore.util.OppositeFeature;
@@ -191,6 +200,61 @@
 			}
 		}
 		
+		preloadOppositefeatures();
+
+	}
+
+	private void preloadOppositefeatures() {
+		// make sure the processes are loaded before calculating the feature
+		// otherwise the opposite feature map is not populated
+		// fine for publishing since the whole library is loaded already
+		// special handling for browsing
+		// load the opposite feature specifically
+		if ( getLayoutMgr().isPublishingMode() ) {
+			return;
+		}
+		
+		//OppositeFeature of;
+		Resource res = element.eResource();
+		if ( res == null ) {
+			return;
+		}
+		
+		ResourceSet resSet = res.getResourceSet();
+		if ( !(resSet instanceof ILibraryResourceSet) ) {
+			return;
+		}
+		
+		List<OppositeFeature> oppositeFeatures = new ArrayList<OppositeFeature>();
+		if ( this.element instanceof Role ) {
+			oppositeFeatures.add(AssociationHelper.Role_RoleDescriptors);
+		} else if ( this.element instanceof Task ) {
+			oppositeFeatures.add(AssociationHelper.Task_TaskDescriptors);
+		} else if ( this.element instanceof WorkProduct ) {
+			oppositeFeatures.add(AssociationHelper.WorkProduct_WorkProductDescriptors);
+		} else if ( this.element instanceof Checklist ) {
+			oppositeFeatures.add(AssociationHelper.Checklist_Activities);
+		} else if ( this.element instanceof Concept || this.element instanceof Whitepaper ) {
+			oppositeFeatures.add(AssociationHelper.Concept_Activities);
+		} else if ( this.element instanceof Checklist ) {
+			oppositeFeatures.add(AssociationHelper.Checklist_Activities);
+		} else if ( this.element instanceof Example ) {
+			oppositeFeatures.add(AssociationHelper.Example_Activities);
+		} else if ( this.element instanceof Guideline ) {
+			oppositeFeatures.add(AssociationHelper.Guideline_Activities);
+		} else if ( this.element instanceof ReusableAsset ) {
+			oppositeFeatures.add(AssociationHelper.ReusableAsset_Activities);
+		} else if ( this.element instanceof Roadmap ) {
+			oppositeFeatures.add(AssociationHelper.Roadmap_Activites);
+		} else if ( this.element instanceof SupportingMaterial ) {
+			oppositeFeatures.add(AssociationHelper.SupportingMaterial_Activities);
+		} 
+	
+		if ( oppositeFeatures.size() > 0 ) {
+			Set<String> GUIDs = new HashSet<String>();
+			GUIDs.add(element.getGuid());
+			((ILibraryResourceSet)resSet).loadOppositeFeatures(oppositeFeatures, GUIDs);
+		}
 	}
 
 	protected void setLayoutInfo(LayoutInfo info) {
@@ -964,22 +1028,6 @@
 			of = AssociationHelper.WorkProduct_WorkProductDescriptors;
 		}
 			
-		// make sure the processes are loaded before calculating the feature
-		// otherwise the opposite feature map is not populated
-		// fine for publishing since the whole library is loaded already
-		// special handling for browsing
-		// load the opposite feature specifically
-		if ( !getLayoutMgr().isPublishingMode() ) {
-			ResourceSet resSet = element.eResource().getResourceSet();
-			if ( resSet instanceof ILibraryResourceSet ) {
-				List<OppositeFeature> oppositeFeatures = new ArrayList<OppositeFeature>();
-				Set<String> GUIDs = new HashSet<String>();
-				oppositeFeatures.add(of);
-				GUIDs.add(element.getGuid());
-				((ILibraryResourceSet)resSet).loadOppositeFeatures(oppositeFeatures, GUIDs);
-			}
-		}
-
 		List descriptors = ConfigurationHelper.calc0nFeatureValue(
 				this.element, of,
 				layoutManager.getElementRealizer());
diff --git a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ChecklistLayout.java b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ChecklistLayout.java
index a59c223..e442193 100644
--- a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ChecklistLayout.java
+++ b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ChecklistLayout.java
@@ -53,6 +53,13 @@
 			List contentElements = ConfigurationHelper.calc0nFeatureValue(super.element,
 					AssociationHelper.Checklist_ContentElements, layoutManager
 							.getElementRealizer());
+			
+			List activities = ConfigurationHelper.calc0nFeatureValue(super.element,
+					AssociationHelper.Checklist_Activities, layoutManager
+							.getElementRealizer());
+
+			contentElements.addAll(activities);
+
 			addReferences(AssociationHelper.Checklist_ContentElements, elementXml, "contentElements", contentElements); //$NON-NLS-1$
 		}
 
diff --git a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ConceptLayout.java b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ConceptLayout.java
index e574a84..f122ff0 100644
--- a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ConceptLayout.java
+++ b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ConceptLayout.java
@@ -53,6 +53,13 @@
 			List contentElements = ConfigurationHelper.calc0nFeatureValue(super.element,
 					AssociationHelper.Concept_ContentElements, layoutManager
 							.getElementRealizer());
+
+			List activities = ConfigurationHelper.calc0nFeatureValue(super.element,
+					AssociationHelper.Concept_Activities, layoutManager
+							.getElementRealizer());
+
+			contentElements.addAll(activities);
+			
 			addReferences(AssociationHelper.Concept_ContentElements, elementXml, "contentElements", contentElements); //$NON-NLS-1$
 		}
 
diff --git a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ExampleLayout.java b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ExampleLayout.java
index 3171308..ecaebe7 100644
--- a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ExampleLayout.java
+++ b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ExampleLayout.java
@@ -55,6 +55,13 @@
 			List contentElements = ConfigurationHelper.calc0nFeatureValue(super.element,
 					AssociationHelper.Example_ContentElements, layoutManager
 							.getElementRealizer());
+			
+			List activities = ConfigurationHelper.calc0nFeatureValue(super.element,
+					AssociationHelper.Example_Activities, layoutManager
+							.getElementRealizer());
+
+			contentElements.addAll(activities);
+			
 			addReferences(AssociationHelper.Example_ContentElements, elementXml, "contentElements", contentElements); //$NON-NLS-1$
 
 			Guidance guidance = (Guidance) super.element;
diff --git a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/GuidelineLayout.java b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/GuidelineLayout.java
index 3f6069a..da6a368 100644
--- a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/GuidelineLayout.java
+++ b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/GuidelineLayout.java
@@ -46,6 +46,13 @@
 			List contentElements = ConfigurationHelper.calc0nFeatureValue(super.element,
 					AssociationHelper.Guideline_ContentElements, layoutManager
 							.getElementRealizer());
+			
+			List activities = ConfigurationHelper.calc0nFeatureValue(super.element,
+					AssociationHelper.Guideline_Activities, layoutManager
+							.getElementRealizer());
+
+			contentElements.addAll(activities);
+
 			addReferences(AssociationHelper.Guideline_ContentElements, elementXml, "contentElements", contentElements); //$NON-NLS-1$
 		}
 
diff --git a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ReusableAssetLayout.java b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ReusableAssetLayout.java
index d46cfc4..9936a12 100644
--- a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ReusableAssetLayout.java
+++ b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ReusableAssetLayout.java
@@ -55,6 +55,13 @@
 			List contentElements = ConfigurationHelper.calc0nFeatureValue(super.element,
 					AssociationHelper.ReusableAsset_ContentElements,
 					layoutManager.getElementRealizer());
+			
+			List activities = ConfigurationHelper.calc0nFeatureValue(super.element,
+					AssociationHelper.ReusableAsset_Activities, layoutManager
+							.getElementRealizer());
+
+			contentElements.addAll(activities);
+
 			addReferences(AssociationHelper.ReusableAsset_ContentElements, elementXml, "contentElements", contentElements); //$NON-NLS-1$
 
 			Guidance guidance = (Guidance) super.element;
diff --git a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/SupportingMaterialLayout.java b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/SupportingMaterialLayout.java
index cdc2189..5546d7d 100644
--- a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/SupportingMaterialLayout.java
+++ b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/SupportingMaterialLayout.java
@@ -46,6 +46,13 @@
 			List contentElements = ConfigurationHelper.calc0nFeatureValue(super.element,
 					AssociationHelper.SupportingMaterial_ContentElements,
 					layoutManager.getElementRealizer());
+			
+			List activities = ConfigurationHelper.calc0nFeatureValue(super.element,
+					AssociationHelper.SupportingMaterial_Activities, layoutManager
+							.getElementRealizer());
+
+			contentElements.addAll(activities);
+
 			addReferences(AssociationHelper.SupportingMaterial_ContentElements, elementXml, "contentElements", contentElements); //$NON-NLS-1$
 		}
 
diff --git a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/WhitepaperLayout.java b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/WhitepaperLayout.java
index ac5ed29..5310cb0 100644
--- a/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/WhitepaperLayout.java
+++ b/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/WhitepaperLayout.java
@@ -55,6 +55,13 @@
 			List contentElements = ConfigurationHelper.calc0nFeatureValue(super.element, 
 					AssociationHelper.Concept_ContentElements, 
 					layoutManager.getElementRealizer());
+			
+			List activities = ConfigurationHelper.calc0nFeatureValue(super.element,
+					AssociationHelper.Concept_Activities, layoutManager
+							.getElementRealizer());
+
+			contentElements.addAll(activities);
+
 			addReferences(AssociationHelper.Concept_ContentElements, elementXml, "contentElements", contentElements); //$NON-NLS-1$
 
 			Guidance guidance = (Guidance) super.element;
diff --git a/org.eclipse.epf.uma/src/org/eclipse/epf/uma/util/AssociationHelper.java b/org.eclipse.epf.uma/src/org/eclipse/epf/uma/util/AssociationHelper.java
index 166e568..684ad42 100644
--- a/org.eclipse.epf.uma/src/org/eclipse/epf/uma/util/AssociationHelper.java
+++ b/org.eclipse.epf.uma/src/org/eclipse/epf/uma/util/AssociationHelper.java
@@ -197,6 +197,14 @@
 			"Checklist_ContentElements", UmaPackage.eINSTANCE.getContentElement_Checklists(), true); //$NON-NLS-1$
 
 	/**
+	 * An opposite feature used for retrieving the activities which a checklist is
+	 * associated with.
+	 */
+	public static final OppositeFeature Checklist_Activities = new OppositeFeature(
+			Checklist.class,
+			"Checklist_Activities", UmaPackage.eINSTANCE.getActivity_Checklists(), true); //$NON-NLS-1$
+
+	/**
 	 * An opposite feature used for retrieving the activities which a concept is
 	 * associated with.
 	 */
@@ -205,6 +213,23 @@
 			"Concept_Activities", UmaPackage.eINSTANCE.getActivity_Concepts(), true, false); //$NON-NLS-1$
 
 	/**
+	 * An opposite feature used for retrieving the activities which an example is
+	 * associated with.
+	 */
+	public static final OppositeFeature Example_Activities = new OppositeFeature(
+			Concept.class,
+			"Example_Activities", UmaPackage.eINSTANCE.getActivity_Examples(), true, false); //$NON-NLS-1$
+
+	/**
+	 * An opposite feature used for retrieving the activities which a ReusableAsset is
+	 * associated with.
+	 */
+	public static final OppositeFeature ReusableAsset_Activities = new OppositeFeature(
+			Concept.class,
+			"ReusableAsset_Activities", UmaPackage.eINSTANCE.getActivity_ReusableAssets(), true, false); //$NON-NLS-1$
+
+
+	/**
 	 * An opposite feature used for retrieving the content elements which a
 	 * concept is associated with.
 	 */