1.1 compatible
[jalview.git] / src / jalview / analysis / AlignmentSorter.java
index c2814b8..bf18b70 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
 * Jalview - A Sequence Alignment Editor and Viewer\r
-* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
 *\r
 * This program is free software; you can redistribute it and/or\r
 * modify it under the terms of the GNU General Public License\r
@@ -52,7 +52,8 @@ public class AlignmentSorter
 \r
         for (int i = 0; i < nSeq; i++)\r
         {\r
-            scores[i] = Comparison.PID(align.getSequenceAt(i), s);\r
+            scores[i] = Comparison.PID(align.getSequenceAt(i).getSequence(),\r
+                                       s.getSequence());\r
             seqs[i] = align.getSequenceAt(i);\r
         }\r
 \r
@@ -108,15 +109,28 @@ public class AlignmentSorter
      * @param align DOCUMENT ME!\r
      * @param seqs sequences as an array\r
      */\r
-    private static void setOrder(AlignmentI align, SequenceI[] seqs)\r
+    public static void setOrder(AlignmentI align, SequenceI[] seqs)\r
     {\r
         // NOTE: DO NOT USE align.setSequenceAt() here - it will NOT work\r
         Vector algn = align.getSequences();\r
+        Vector tmp = new Vector();\r
 \r
         for (int i = 0; i < seqs.length; i++)\r
         {\r
-            algn.setElementAt(seqs[i], i);\r
+          if(algn.contains(seqs[i]))\r
+            tmp.addElement(seqs[i]);\r
+        }\r
+\r
+        algn.removeAllElements();\r
+        //User may have hidden seqs, then clicked undo or redo\r
+        for (int i = 0; i < tmp.size(); i++)\r
+        {\r
+          algn.addElement(tmp.elementAt(i));\r
         }\r
+\r
+\r
+\r
+\r
     }\r
 \r
     /**\r