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.
*/