wlu: handle extended references
diff --git a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/LibraryResources.java b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/LibraryResources.java
index fb375cd..2ddbb06 100644
--- a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/LibraryResources.java
+++ b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/LibraryResources.java
@@ -63,6 +63,7 @@
public static String ActivityLayout_primaryTasks_text;
public static String ActivityLayout_additionalTasks_text;
public static String ActivityLayout_assistTasks_text;
+ public static String ActivityLayout_performAs_text;
public static String convertGuidanceError_title;
public static String loadResourcesError_title;
public static String loadResourcesError_reason;
diff --git a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/Resources.properties b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/Resources.properties
index 7faf8f2..51fff9a 100644
--- a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/Resources.properties
+++ b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/Resources.properties
@@ -118,6 +118,7 @@
ActivityLayout_primaryTasks_text=Performs as Owner
ActivityLayout_additionalTasks_text=Performs as Additional
ActivityLayout_assistTasks_text=Performs as assist
+ActivityLayout_performAs_text=Performs as {0}
# Convert Guidance Error Messages
convertGuidanceError_title=Convert Guidance Type Error
diff --git a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ActivityLayout.java b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ActivityLayout.java
index 941bc83..d72d06b 100644
--- a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ActivityLayout.java
+++ b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/layout/elements/ActivityLayout.java
@@ -34,6 +34,7 @@
import org.eclipse.epf.library.LibraryService;
import org.eclipse.epf.library.configuration.ConfigurationHelper;
import org.eclipse.epf.library.edit.IFilter;
+import org.eclipse.epf.library.edit.meta.TypeDefUtil;
import org.eclipse.epf.library.edit.process.BreakdownElementWrapperItemProvider;
import org.eclipse.epf.library.edit.process.ComposedWPDescriptorWrapperItemProvider;
import org.eclipse.epf.library.edit.process.IBSItemProvider;
@@ -41,6 +42,7 @@
import org.eclipse.epf.library.edit.util.DescriptorPropUtil;
import org.eclipse.epf.library.edit.util.PredecessorList;
import org.eclipse.epf.library.edit.util.ProcessUtil;
+import org.eclipse.epf.library.edit.util.PropUtil;
import org.eclipse.epf.library.edit.util.Suppression;
import org.eclipse.epf.library.edit.util.TngUtil;
import org.eclipse.epf.library.layout.ElementLayoutManager;
@@ -75,6 +77,8 @@
import org.eclipse.epf.uma.WorkProductDescriptor;
import org.eclipse.epf.uma.ecore.util.OppositeFeature;
import org.eclipse.epf.uma.util.AssociationHelper;
+import org.eclipse.epf.uma.util.ExtendedReference;
+import org.eclipse.epf.uma.util.ModifiedTypeMeta;
import org.eclipse.osgi.util.NLS;
@@ -1153,6 +1157,36 @@
createRoleRollupNodes(parentXml, assistTasks,
LibraryResources.ActivityLayout_assistTasks_text, setting);
+ ModifiedTypeMeta meta = TypeDefUtil.getMdtMeta(UmaPackage.eINSTANCE.getRole());
+ if (meta != null) {
+ for ( Iterator it = descriptors.iterator(); it.hasNext(); ) {
+ roleItem = (RoleDescriptor) it.next();
+ for (ExtendedReference eRef : meta.getReferences()) {
+ if (ExtendedReference.WorkProducts.equals(eRef.getContributeTo())) {
+ items = PropUtil.getPropUtil().getExtendedReferenceList(roleItem, eRef, false);
+ createRoleRollupNodes(parentXml, items,
+ eRef.getName(), setting);
+ }
+ }
+
+ }
+ }
+
+ meta = TypeDefUtil.getMdtMeta(UmaPackage.eINSTANCE.getTask());
+ if (meta != null) {
+ for ( Iterator it = descriptors.iterator(); it.hasNext(); ) {
+ roleItem = (RoleDescriptor) it.next();
+ for (ExtendedReference eRef : meta.getReferences()) {
+ if (ExtendedReference.Roles.equals(eRef.getContributeTo())) {
+ items = PropUtil.getPropUtil().getReferencingList(roleItem, eRef);
+ String info = LibraryResources.bind(LibraryResources.ActivityLayout_performAs_text, (new String[] {eRef.getName()}));
+ createRoleRollupNodes(parentXml, items,
+ info, setting);
+ }
+ }
+
+ }
+ }
}
private void createRoleRollupNodes(XmlElement parentXml, List items,
diff --git a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/ModelInfoKeyMap.java b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/ModelInfoKeyMap.java
index bc440f0..ebda32c 100644
--- a/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/ModelInfoKeyMap.java
+++ b/1.5/plugins/org.eclipse.epf.library/src/org/eclipse/epf/library/util/ModelInfoKeyMap.java
@@ -57,10 +57,10 @@
"assistTasks");//$NON-NLS-1$
ModifiedTypeMeta taskMeta = TypeDefUtil.getMdtMeta(UmaPackage.eINSTANCE.getTask());
-// ModifiedTypeMeta roleMeta = TypeDefUtil.getMdtMeta(UmaPackage.eINSTANCE.getRole());
+ ModifiedTypeMeta roleMeta = TypeDefUtil.getMdtMeta(UmaPackage.eINSTANCE.getRole());
addForModifiedType(taskMeta);
-// addForModifiedType(roleMeta);
+ addForModifiedType(roleMeta);
}
private void addForModifiedType(ModifiedTypeMeta meta) {
@@ -68,9 +68,14 @@
return;
}
for (ExtendedReference eRef : meta.getReferences()) {
- if (ExtendedReference.WorkProducts.equals(eRef.getContributeTo())
- || ExtendedReference.Roles.equals(eRef.getContributeTo())) {
+ boolean w = ExtendedReference.WorkProducts.equals(eRef.getContributeTo());
+ boolean r = ExtendedReference.Roles.equals(eRef.getContributeTo());
+ if (w || r) {
map.put(eRef.getName(), eRef.getName());
+ }
+ if (r) {
+ String info = LibraryResources.bind(LibraryResources.ActivityLayout_performAs_text, (new String[] {eRef.getName()}));
+ map.put(info, info);
}
}
}