import java.awt.event.*;\r
import java.util.*;\r
import java.io.*;\r
-import jalview.util.*;\r
import javax.swing.*;\r
-import java.awt.print.*;\r
import java.awt.*;\r
import java.awt.image.*;\r
import org.jibble.epsgraphics.*;\r
\r
\r
\r
-\r
public class TreePanel extends GTreePanel\r
{\r
SequenceI[] seq;\r
for (int i=0;i < seqVector.size();i++)\r
{\r
seq[i] = (Sequence) seqVector.elementAt(i);\r
- if(seq[i].getName().length()>longestName.length())\r
- longestName = seq[i].getName();\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
+ if (longestName.length()<((Sequence) ((SequenceNode) leaves.elementAt(i)).element()).getName().length())\r
+ longestName = TreeCanvas.PLACEHOLDER+((Sequence) ((SequenceNode) leaves.elementAt(i)).element()).getName();\r
\r
tree.reCount(tree.getTopNode());\r
tree.findHeight(tree.getTopNode());\r
treeCanvas.setShowBootstrap(newtree.HasBootstrap());\r
treeCanvas.setShowDistances(newtree.HasDistances());\r
scrollPane.setViewportView(treeCanvas);\r
+ distanceMenu.setSelected(newtree.HasDistances());\r
+ bootstrapMenu.setSelected(newtree.HasBootstrap());\r
+ if (true) // JBPNote TODO: preference for always marking placeholders in new associated tree\r
+ placeholdersMenu.setSelected(treeCanvas.markPlaceholders);\r
\r
}\r
\r
- public String getText(String format)\r
+\r
+ public void textbox_actionPerformed(ActionEvent e)\r
{\r
- return null;\r
+ CutAndPasteTransfer cap = new CutAndPasteTransfer();\r
+ JInternalFrame frame = new JInternalFrame();\r
+ frame.setContentPane(cap);\r
+\r
+ StringBuffer buffer = new StringBuffer();\r
+\r
+ if(type.equals("AV"))\r
+ buffer.append("Average distance tree using ");\r
+ else\r
+ buffer.append("Neighbour joining tree using ");\r
+\r
+ if(pwtype.equals("BL"))\r
+ buffer.append("BLOSUM62");\r
+ else\r
+ buffer.append("PID");\r
+\r
+ Desktop.addInternalFrame(frame,buffer.toString(), 500, 100);\r
+ jalview.io.NewickFile fout = new jalview.io.NewickFile(tree.getTopNode());\r
+ cap.setText( fout.print(false,true) );\r
+\r
}\r
\r
+\r
public void saveAsNewick_actionPerformed(ActionEvent e)\r
{\r
\r
treeCanvas.setShowBootstrap(bootstrapMenu.isSelected());\r
}\r
\r
+ protected void placeholdersMenu_actionPerformed(ActionEvent e)\r
+ {\r
+ treeCanvas.setMarkPlaceholders(placeholdersMenu.isSelected());\r
+ }\r
\r
protected void epsTree_actionPerformed(ActionEvent e)\r
{\r