Improve how role relationships are displayed in navigation trees and
role pages
diff --git a/1.5/plugins/org.eclipse.epf.publish.layout/layout/xsl/resources.properties b/1.5/plugins/org.eclipse.epf.publish.layout/layout/xsl/resources.properties
index 852eec2..fe38cf6 100644
--- a/1.5/plugins/org.eclipse.epf.publish.layout/layout/xsl/resources.properties
+++ b/1.5/plugins/org.eclipse.epf.publish.layout/layout/xsl/resources.properties
@@ -224,6 +224,7 @@
 additionalText=Additional
 modifiesText=Modifies
 additionallyPerformsText=Additionally Performs
+primaryPerformsText=Primary Performs
 indexText=Index
 breakdownElementText=Breakdown Element
 predecessorsText=Predecessors
diff --git a/1.5/plugins/org.eclipse.epf.publish.layout/layout/xsl/resources.xsl b/1.5/plugins/org.eclipse.epf.publish.layout/layout/xsl/resources.xsl
index 4fec299..f221a5e 100644
--- a/1.5/plugins/org.eclipse.epf.publish.layout/layout/xsl/resources.xsl
+++ b/1.5/plugins/org.eclipse.epf.publish.layout/layout/xsl/resources.xsl
@@ -256,5 +256,5 @@
 	<xsl:param name="udtText"/>
 	
 	<xsl:param name="guidancesText"/>
-	
+	<xsl:param name="primaryPerformsText"/>
 </xsl:stylesheet>
diff --git a/1.5/plugins/org.eclipse.epf.publish.layout/layout/xsl/role.xsl b/1.5/plugins/org.eclipse.epf.publish.layout/layout/xsl/role.xsl
index 5706ae4..2b6586d 100644
--- a/1.5/plugins/org.eclipse.epf.publish.layout/layout/xsl/role.xsl
+++ b/1.5/plugins/org.eclipse.epf.publish.layout/layout/xsl/role.xsl
@@ -137,6 +137,7 @@
 
 	<xsl:template name="relationshipsSection">
 			<xsl:variable name="practices" select="referenceList[@name='Practices']/Element"/>	
+		<xsl:variable name="Role_Primary_Tasks" select="referenceList[@name='Role_Primary_Tasks']/Element"/>
 		<xsl:variable name="additionallyPerforms" select="referenceList[@name='additionallyPerforms']/Element"/>
 		<xsl:variable name="workProductModifies" select="referenceList[@name='modifies']/Element[@Type!='WorkProductSlot']"/>
 		<xsl:variable name="workProductSlotModifies" select="referenceList[@name='modifies']/Element[@Type='WorkProductSlot']"/>
@@ -163,6 +164,10 @@
 					<xsl:with-param name="refElement" select="$categories"/>
 				</xsl:call-template>
 				<xsl:call-template name="addReferences">
+					<xsl:with-param name="refName" select="$primaryPerformsText"/>
+					<xsl:with-param name="refElement" select="$Role_Primary_Tasks"/>
+				</xsl:call-template>
+				<xsl:call-template name="addReferences">
 					<xsl:with-param name="refName" select="$additionallyPerformsText"/>
 					<xsl:with-param name="refElement" select="$additionallyPerforms"/>
 				</xsl:call-template>
diff --git a/1.5/plugins/org.eclipse.epf.publishing/src/org/eclipse/epf/publishing/services/ConfigurationViewBuilder.java b/1.5/plugins/org.eclipse.epf.publishing/src/org/eclipse/epf/publishing/services/ConfigurationViewBuilder.java
index 3158386..755a861 100644
--- a/1.5/plugins/org.eclipse.epf.publishing/src/org/eclipse/epf/publishing/services/ConfigurationViewBuilder.java
+++ b/1.5/plugins/org.eclipse.epf.publishing/src/org/eclipse/epf/publishing/services/ConfigurationViewBuilder.java
@@ -1145,8 +1145,8 @@
 		List items = calc0nFeatureValue(element,
 				AssociationHelper.Role_Primary_Tasks);
 		if (items.size() > 0) {
+			Collections.sort(items, nameComparator);
 			if (options.isPublishLightWeightTree()) {
-				Collections.sort(items, nameComparator);
 				allItems.addAll(items);
 			} else {
 				createFolderBookmark(element, bm, PREFIX_ResponsibleFor_Tasks,
@@ -1163,6 +1163,7 @@
 			items = calc0nFeatureValue(element,
 					AssociationHelper.Role_Secondary_Tasks);
 			if (items.size() > 0) {
+				Collections.sort(items, nameComparator);
 				createFolderBookmark(element, bm, PREFIX_ParticipatesIn_Tasks,
 						NODE_ParticipatesIn_Tasks, items, true);
 			}
@@ -1177,8 +1178,8 @@
 				.getRole_ResponsibleFor());
 
 		if (items.size() > 0) {
+			Collections.sort(items, nameComparator);
 			if (options.isPublishLightWeightTree()) {
-				Collections.sort(items, nameComparator);
 				allItems.addAll(items);
 			} else {
 				b = createFolderBookmark(element, bm,
@@ -1197,6 +1198,7 @@
 			items = calc0nFeatureValue(element, UmaPackage.eINSTANCE
 					.getRole_Modifies());
 			if (items.size() > 0) {
+				Collections.sort(items, nameComparator);
 				b = createFolderBookmark(element, bm,
 						PREFIX_Work_Products_Modified,
 						NODE_Work_Products_Modified, items, false);
@@ -1224,8 +1226,8 @@
 				.getContentElement_SupportingMaterials()));
 
 		if (items.size() > 0) {
+			Collections.sort(items, nameComparator);
 			if (options.isPublishLightWeightTree()) {
-				Collections.sort(items, nameComparator);
 				allItems.addAll(items);
 			} else {
 				createFolderBookmark(element, bm, PREFIX_Guidances, NODE_Guidances, items, true);