512204: sort reviewers list by reviewer name

Change-Id: I956f942934b8f7211ee21444dc51dc53509fe1d7
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=512204
Signed-off-by: Jaxsun McCarthy Huggan <jaxsun.mccarthy@tasktop.com>
diff --git a/org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/editor/ReviewDetailSection.java b/org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/editor/ReviewDetailSection.java
index dcd103b..ab632e8 100644
--- a/org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/editor/ReviewDetailSection.java
+++ b/org.eclipse.mylyn.reviews.ui/src/org/eclipse/mylyn/reviews/ui/spi/editor/ReviewDetailSection.java
@@ -15,7 +15,9 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Map.Entry;
+import java.util.TreeMap;
 
 import org.apache.commons.lang.StringUtils;
 import org.eclipse.jface.layout.GridDataFactory;
@@ -146,13 +148,17 @@
 
 			AbstractUiFactoryProvider<IUser> reviewerUiFactoryProvider = getReviewerUiFactoryProvider();
 
-			for (Entry<IUser, IReviewerEntry> entry : getReview().getReviewerApprovals().entrySet()) {
-				IUser currentUser = entry.getKey();
+			Map<IUser, IReviewerEntry> sortedReviewerApprovals = new TreeMap<>(
+					(u1, u2) -> u1.getDisplayName().compareTo(u2.getDisplayName()));
+			sortedReviewerApprovals.putAll(getReview().getReviewerApprovals());
+
+			for (Entry<IUser, IReviewerEntry> approval : sortedReviewerApprovals.entrySet()) {
+				IUser currentUser = approval.getKey();
 
 				createReviewerLabelAndControls(composite, reviewerUiFactoryProvider, currentUser);
 
 				for (IApprovalType approvalType : approvalTypesWithLabel) {
-					Integer value = entry.getValue().getApprovals().get(approvalType);
+					Integer value = approval.getValue().getApprovals().get(approvalType);
 					Label approvalValueLabel = new Label(composite, SWT.NONE);
 					GridDataFactory.fillDefaults().align(SWT.CENTER, SWT.FILL).applyTo(approvalValueLabel);
 					String rankingText = " "; //$NON-NLS-1$