wlu: handle extended references
diff --git a/1.5/plugins/org.eclipse.epf.library.edit/src/org/eclipse/epf/library/edit/util/ProcessUtil.java b/1.5/plugins/org.eclipse.epf.library.edit/src/org/eclipse/epf/library/edit/util/ProcessUtil.java
index 103e5b9..226e818 100644
--- a/1.5/plugins/org.eclipse.epf.library.edit/src/org/eclipse/epf/library/edit/util/ProcessUtil.java
+++ b/1.5/plugins/org.eclipse.epf.library.edit/src/org/eclipse/epf/library/edit/util/ProcessUtil.java
@@ -51,6 +51,7 @@
import org.eclipse.epf.library.edit.Providers;
import org.eclipse.epf.library.edit.TngAdapterFactory;
import org.eclipse.epf.library.edit.command.IActionManager;
+import org.eclipse.epf.library.edit.meta.TypeDefUtil;
import org.eclipse.epf.library.edit.process.ActivityWrapperItemProvider;
import org.eclipse.epf.library.edit.process.BSActivityItemProvider;
import org.eclipse.epf.library.edit.process.BreakdownElementWrapperItemProvider;
@@ -104,6 +105,8 @@
import org.eclipse.epf.uma.WorkProductDescriptor;
import org.eclipse.epf.uma.provider.UmaEditPlugin;
import org.eclipse.epf.uma.util.AssociationHelper;
+import org.eclipse.epf.uma.util.ExtendedReference;
+import org.eclipse.epf.uma.util.ModifiedTypeMeta;
import org.eclipse.epf.uma.util.Scope;
import org.eclipse.epf.uma.util.UmaUtil;
@@ -2534,6 +2537,20 @@
if(AssociationHelper.getOutputFrom(wpd).contains(parentDescriptor)) {
features.add(UmaPackage.eINSTANCE.getTaskDescriptor_Output());
}
+
+ ModifiedTypeMeta meta = TypeDefUtil.getMdtMeta(UmaPackage.eINSTANCE.getTask());
+ if (meta != null) {
+ TaskDescriptor td = (TaskDescriptor) parentDescriptor;
+ for (ExtendedReference eRef : meta.getReferences()) {
+ if (ExtendedReference.WorkProducts.equals(eRef.getContributeTo())) {
+ List list = PropUtil.getPropUtil().getExtendedReferenceList(td, eRef, false);
+ if (list.contains(wpd)) {
+ features.add(eRef.getReference());
+ }
+ }
+ }
+ }
+
if(!features.isEmpty()) {
if (modelInfo.toString().length() > 0) {
modelInfo.append(","); //$NON-NLS-1$
@@ -2583,6 +2600,17 @@
modelInfo.append(UmaEditPlugin.INSTANCE
.getString("_UI_TaskDescriptor_output_feature")); //$NON-NLS-1$
}
+ ModifiedTypeMeta meta = TypeDefUtil.getMdtMeta(UmaPackage.eINSTANCE.getTask());
+ if (meta != null) {
+ for (ExtendedReference eRef : meta.getReferences()) {
+ if (ExtendedReference.WorkProducts.equals(eRef.getContributeTo())) {
+ List list = PropUtil.getPropUtil().getReferencingList(object, eRef);
+ if (list != null && !list.isEmpty()) {
+ modelInfo.append(eRef.getName());
+ }
+ }
+ }
+ }
}
public static Collection getDuplicateDescriptorsAfterReveal(Collection elementsToReveal) {