output text to textbox
[jalview.git] / src / jalview / gui / TreePanel.java
index c458638..047c1d4 100755 (executable)
@@ -7,9 +7,7 @@ import jalview.io.*;
 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
@@ -17,7 +15,6 @@ import javax.imageio.*;
 \r
 \r
 \r
-\r
 public class TreePanel extends GTreePanel\r
 {\r
   SequenceI[] seq;\r
@@ -78,11 +75,15 @@ public class TreePanel extends GTreePanel
       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
@@ -91,14 +92,39 @@ public class TreePanel extends GTreePanel
       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
@@ -172,6 +198,10 @@ public class TreePanel extends GTreePanel
     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