extended the UpdatePlaceholders to check for any new associations.
authorjprocter <Jim Procter>
Tue, 24 May 2005 17:17:08 +0000 (17:17 +0000)
committerjprocter <Jim Procter>
Tue, 24 May 2005 17:17:08 +0000 (17:17 +0000)
src/jalview/analysis/NJTree.java

index cf15d78..f44f990 100755 (executable)
@@ -96,13 +96,28 @@ public class NJTree {
     Vector leaves = new Vector();\r
     findLeaves(top, leaves);\r
     int sz = leaves.size();\r
+    SequenceIdMatcher seqmatcher=null;\r
     int i=0;\r
     while (i<sz) {\r
       SequenceNode leaf = (SequenceNode) leaves.elementAt(i++);\r
       if (alignment.contains(leaf.element()))\r
         leaf.setPlaceholder(false);\r
-      else\r
-        leaf.setPlaceholder(true);\r
+      else {\r
+        if (seqmatcher==null) {\r
+          // Only create this the first time we need it\r
+          SequenceI[] seqs = new SequenceI[alignment.size()];\r
+          for (int j=0; j<seqs.length; j++)\r
+            seqs[j] = (SequenceI) alignment.elementAt(j);\r
+          seqmatcher = new SequenceIdMatcher(seqs);\r
+        }\r
+        SequenceI nam = seqmatcher.findIdMatch(leaf.getName());\r
+        if (nam!=null) {\r
+          leaf.setPlaceholder(false);\r
+          leaf.setElement(nam);\r
+        } else {\r
+          leaf.setPlaceholder(true);\r
+        }\r
+      }\r
     }\r
   }\r
 \r