X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FAlignmentSorter.java;h=64682c1f2433e0f2ba9fec3587dee3e5b9eaccd9;hb=aeb0422c06425ac0c76375106ffc635d03e88b88;hp=38812666544beb4570d82a3fa905c8f459c2b8bb;hpb=1ecf6419aba86993b3c223bf5ec0fa79427baf85;p=jalview.git diff --git a/src/jalview/analysis/AlignmentSorter.java b/src/jalview/analysis/AlignmentSorter.java index 3881266..64682c1 100755 --- a/src/jalview/analysis/AlignmentSorter.java +++ b/src/jalview/analysis/AlignmentSorter.java @@ -83,6 +83,7 @@ public class AlignmentSorter { } /** */ + static boolean sortIdAscending = true; public static void sortByID(AlignmentI align) { int nSeq = align.getHeight(); @@ -96,9 +97,15 @@ public class AlignmentSorter { QuickSort.sort(ids,seqs); - setReverseOrder(align,seqs); + if(sortIdAscending) + setReverseOrder(align,seqs); + else + setOrder(align, seqs); + + sortIdAscending = !sortIdAscending; } + static boolean sortGroupAscending = true; public static void sortByGroup(AlignmentI align) { int nSeq = align.getHeight(); Vector groups = align.getGroups(); @@ -120,7 +127,12 @@ public class AlignmentSorter { } } - setOrder(align,seqs); + if(sortGroupAscending) + setOrder(align,seqs); + else + setReverseOrder( align, vectorToArray(seqs)); + + sortGroupAscending = ! sortGroupAscending; } private static SequenceI [] vectorToArray(Vector tmp) { @@ -132,6 +144,7 @@ public class AlignmentSorter { return seqs; } + static boolean sortTreeAscending = true; public static void sortByTree(AlignmentI align, NJTree tree) { int nSeq = align.getHeight(); @@ -146,7 +159,12 @@ public class AlignmentSorter { } } - setOrder(align,tmp); + if(sortTreeAscending) + setOrder(align,tmp); + else + setReverseOrder(align, vectorToArray(tmp)); + + sortTreeAscending = !sortTreeAscending; } private static void addStrays(AlignmentI align, Vector seqs) {