Merge branch 'develop' into features/JAL-518_justify_seqs_in_region
[jalview.git] / src / jalview / analysis / AlignmentSorter.java
index 81bddc2..1801674 100755 (executable)
@@ -25,6 +25,7 @@ import jalview.analysis.scoremodels.SimilarityParams;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.AlignmentOrder;
+import jalview.datamodel.BinaryNode;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
@@ -452,8 +453,8 @@ public class AlignmentSorter
 
       if (tmp.size() != nSeq)
       {
-        System.err.println("WARNING: tmp.size()=" + tmp.size() + " != nseq="
-                + nSeq
+        jalview.bin.Console.errPrintln("WARNING: tmp.size()=" + tmp.size()
+                + " != nseq=" + nSeq
                 + " in getOrderByTree - tree contains sequences not in alignment");
       }
     }
@@ -534,7 +535,7 @@ public class AlignmentSorter
    * 
    * @return DOCUMENT ME!
    */
-  private static List<SequenceI> _sortByTree(SequenceNode node,
+  private static List<SequenceI> _sortByTree(BinaryNode node,
           List<SequenceI> tmp, List<SequenceI> seqset)
   {
     if (node == null)
@@ -542,12 +543,14 @@ public class AlignmentSorter
       return tmp;
     }
 
-    SequenceNode left = (SequenceNode) node.left();
-    SequenceNode right = (SequenceNode) node.right();
+    BinaryNode left = (BinaryNode) node.left();
+    BinaryNode right = (BinaryNode) node.right();
 
     if ((left == null) && (right == null))
     {
-      if (!node.isPlaceholder() && (node.element() != null))
+      if (!(node instanceof SequenceNode
+              && ((SequenceNode) node).isPlaceholder())
+              && (node.element() != null))
       {
         if (node.element() instanceof SequenceI)
         {
@@ -711,7 +714,7 @@ public class AlignmentSorter
       String msg = String.format(
               "Implementation Error - sortByFeature method must be either '%s' or '%s'",
               FEATURE_SCORE, FEATURE_DENSITY);
-      System.err.println(msg);
+      jalview.bin.Console.errPrintln(msg);
       return;
     }
 
@@ -829,7 +832,7 @@ public class AlignmentSorter
           {
             // int nf = (feats[i] == null) ? 0
             // : ((SequenceFeature[]) feats[i]).length;
-            // // System.err.println("Sorting on Score: seq " +
+            // // jalview.bin.Console.errPrintln("Sorting on Score: seq " +
             // seqs[i].getName()
             // + " Feats: " + nf + " Score : " + scores[i]);
           }
@@ -844,7 +847,8 @@ public class AlignmentSorter
         int featureCount = feats[i] == null ? 0
                 : ((SequenceFeature[]) feats[i]).length;
         scores[i] = featureCount;
-        // System.err.println("Sorting on Density: seq "+seqs[i].getName()+
+        // jalview.bin.Console.errPrintln("Sorting on Density: seq
+        // "+seqs[i].getName()+
         // " Feats: "+featureCount+" Score : "+scores[i]);
       }
       QuickSort.sortByDouble(scores, seqs, sortByFeatureAscending);