reads in treeFile from applet parameter
authoramwaterhouse <Andrew Waterhouse>
Wed, 11 May 2005 10:40:48 +0000 (10:40 +0000)
committeramwaterhouse <Andrew Waterhouse>
Wed, 11 May 2005 10:40:48 +0000 (10:40 +0000)
src/jalview/appletgui/AlignFrame.java
src/jalview/appletgui/TreePanel.java

index 28b7cb5..e73854f 100755 (executable)
@@ -45,6 +45,33 @@ public class AlignFrame extends GAlignFrame
     alignPanel = new AlignmentPanel(this, viewport);\r
     add(alignPanel);\r
     alignPanel.validate();\r
+\r
+    String treeFile = applet.getParameter("treeFile");\r
+    TreePanel treepanel = null;\r
+    if (treeFile != null)\r
+    {\r
+      try\r
+      {\r
+        treeFile = treeFile;\r
+        jalview.io.NewickFile fin = new jalview.io.NewickFile( applet.getCodeBase()+treeFile, "URL");\r
+        fin.parse();\r
+\r
+        if (fin.getTree() != null)\r
+        {\r
+          TreePanel tp = null;\r
+          tp = new TreePanel(viewport, viewport.getAlignment().getSequences(),\r
+                             fin, "FromFile", applet.getCodeBase()+treeFile);\r
+          jalview.bin.JalviewLite.addFrame(tp, treeFile, 600, 500);\r
+          addTreeMenuItem(tp, treeFile);\r
+        }\r
+      }\r
+      catch (Exception ex)\r
+      {\r
+        ex.printStackTrace();\r
+      }\r
+    }\r
+\r
+\r
   }\r
 \r
   public void inputText_actionPerformed(ActionEvent e)\r
index 89ff20f..2aeeaed 100755 (executable)
@@ -5,6 +5,7 @@ import jalview.analysis.*;
 import jalview.jbappletgui.GTreePanel;\r
 import java.awt.event.*;\r
 import java.util.*;\r
+import jalview.io.NewickFile;\r
 \r
 \r
 public class TreePanel extends GTreePanel\r
@@ -52,6 +53,41 @@ public class TreePanel extends GTreePanel
 \r
   }\r
 \r
+public TreePanel(AlignViewport av, Vector seqVector, NewickFile newtree,\r
+               String type, String pwtype)\r
+{\r
+  super();\r
+  // These are probably only  arbitrary strings reflecting source of tree\r
+  this.type = type;\r
+  this.pwtype = pwtype;\r
+\r
+  start = 0;\r
+  end = seqVector.size();\r
+\r
+  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
+    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
+\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
+  bootstrapMenu.setState(newtree.HasBootstrap());\r
+  treeCanvas.setShowDistances(newtree.HasDistances());\r
+  distanceMenu.setState(newtree.HasDistances());\r
+  scrollPane.add(treeCanvas);\r
+\r
+}\r
+\r
+\r
 \r
 public String getText(String format) {\r
   return null;\r
@@ -63,6 +99,18 @@ public String getText(String format) {
     repaint();\r
   }\r
 \r
+  public void newickOutput_actionPerformed(ActionEvent actionEvent)\r
+  {\r
+    jalview.io.NewickFile fout = new jalview.io.NewickFile(tree.getTopNode());\r
+    String output = fout.print(false, true);\r
+    CutAndPasteTransfer cap = new CutAndPasteTransfer(false);\r
+    cap.setText(output);\r
+    java.awt.Frame frame = new java.awt.Frame();\r
+    frame.add(cap);\r
+    jalview.bin.JalviewLite.addFrame(frame, type+" "+pwtype, 500,500);\r
+  }\r
+\r
+\r
 \r
   protected void fontSize_actionPerformed(ActionEvent e)\r
   {\r