RevisionInfo: Simplify comparator for sorting by number
"Spread out" each of the non-edit numbers so there is a gap in
between each, and map the edit numbers into that gap.
Change-Id: I24a0bff47c8a1107ee1f9e41b770392fb81e2d92
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfo.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfo.java
index fda02e4..dec3501 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfo.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfo.java
@@ -254,27 +254,15 @@
public final native JsArray<WebLinkInfo> web_links() /*-{ return this.web_links; }-*/;
public static void sortRevisionInfoByNumber(JsArray<RevisionInfo> list) {
- final int parent_number = findEditParent(list);
+ final int editParent = findEditParent(list);
Collections.sort(Natives.asList(list), new Comparator<RevisionInfo>() {
@Override
public int compare(RevisionInfo a, RevisionInfo b) {
- int a_number = a._number();
- int b_number = b._number();
- if (a_number == 0) {
- if (b_number == parent_number + 1) {
- a_number = parent_number;
- } else {
- a_number = parent_number + 1;
- }
- }
- if (b_number == 0) {
- if (a_number == parent_number + 1) {
- b_number = parent_number;
- } else {
- b_number = parent_number + 1;
- }
- }
- return a_number - b_number;
+ return num(a) - num(b);
+ }
+
+ private int num(RevisionInfo r) {
+ return !r.is_edit() ? 2 * (r._number() - 1) + 1 : 2 * editParent;
}
});
}