JAL-2428 pass AlignmentView to TreeModel so Show Input Data works
[jalview.git] / src / jalview / analysis / TreeBuilder.java
index 49c56c9..5347ba2 100644 (file)
@@ -55,6 +55,8 @@ public abstract class TreeBuilder
 
   Vector<SequenceNode> node;
 
+  private AlignmentView seqStrings;
+
   /**
    * Constructor
    * 
@@ -68,7 +70,7 @@ public abstract class TreeBuilder
     int start, end;
     boolean selview = av.getSelectionGroup() != null
             && av.getSelectionGroup().getSize() > 1;
-    AlignmentView seqStrings = av.getAlignmentView(selview);
+    seqStrings = av.getAlignmentView(selview);
     if (!selview)
     {
       start = 0;
@@ -277,6 +279,7 @@ public abstract class TreeBuilder
     {
       /*
        * compute similarity and invert it to give a distance measure
+       * reverseRange(true) converts maximum similarity to zero distance
        */
       MatrixI result = ((SimilarityScoreModelI) sm).findSimilarities(
               seqData, scoreOptions);
@@ -396,11 +399,6 @@ public abstract class TreeBuilder
   {
     double dist = distances.getValue(i, j);
   
-    /*
-     * add the members of cluster(j) to cluster(i)
-     */
-    clusters.get(i).or(clusters.get(j));
-  
     ri = findr(i, j);
     rj = findr(j, i);
   
@@ -422,10 +420,12 @@ public abstract class TreeBuilder
     node.setElementAt(sn, i);
   
     /*
-     * mark cluster j as disposed of
+     * move the members of cluster(j) to cluster(i)
+     * and mark cluster j as out of the game
      */
+    clusters.get(i).or(clusters.get(j));
+    clusters.get(j).clear();
     done.set(j);
-    clusters.setElementAt(null, j);
   }
 
   protected abstract void findNewDistances(SequenceNode tmpi, SequenceNode tmpj,
@@ -461,4 +461,9 @@ public abstract class TreeBuilder
     }
   }
 
+  public AlignmentView getOriginalData()
+  {
+    return seqStrings;
+  }
+
 }