+ String longestName = "";\r
+ seq = new Sequence[seqVector.size()];\r
+ for (int i = 0; i < seqVector.size(); i++)\r
+ {\r
+ seq[i] = (Sequence) seqVector.elementAt(i);\r
+ }\r
+ // This constructor matches sequence names to treenodes and sets up the tree layouts.\r
+ tree = new NJTree(seq, newtree);\r
+ // Now have to calculate longest name based on the leaves\r
+ Vector leaves = tree.findLeaves(tree.getTopNode(), new Vector());\r
+\r
+ for (int i = 0; i < leaves.size(); i++)\r
+ {\r
+ if (longestName.length() <\r
+ ( (Sequence) ( (SequenceNode) leaves.elementAt(i)).element()).getName().\r
+ length())\r
+ {\r
+ longestName = TreeCanvas.PLACEHOLDER +\r
+ ( (Sequence) ( (SequenceNode) leaves.elementAt(i)).element()).\r
+ getName();\r
+ }\r
+ }\r
+\r
+ tree.reCount(tree.getTopNode());\r
+ tree.findHeight(tree.getTopNode());\r
+\r
+ treeCanvas = new TreeCanvas(av, tree, scrollPane, longestName);\r
+ treeCanvas.setShowBootstrap(newtree.HasBootstrap());\r
+ treeCanvas.setShowDistances(newtree.HasDistances());\r
+ distanceMenu.setState(newtree.HasDistances());\r
+ bootstrapMenu.setState(newtree.HasBootstrap());\r
+ if (true) // JBPNote TODO: preference for always marking placeholders in new associated tree\r
+ {\r
+ placeholdersMenu.setState(treeCanvas.markPlaceholders);\r
+ }\r
+ scrollPane.add(treeCanvas);\r
+\r
+ }\r
+\r
+ public String getText(String format)\r
+ {\r
+ return null;\r
+ }\r