-package jalview.appletgui;\r
-\r
-import jalview.datamodel.*;\r
-import jalview.analysis.*;\r
-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
-{\r
- SequenceI[] seq;\r
- String type;\r
- String pwtype;\r
- AlignViewport av;\r
- int start;\r
- int end;\r
- TreeCanvas treeCanvas;\r
- NJTree tree;\r
-\r
- public NJTree getTree()\r
- {\r
- return tree;\r
- }\r
-\r
- public TreePanel(AlignViewport av, Vector seqVector, String type, String pwtype, int s, int e)\r
- {\r
- super();\r
-\r
- this.type = type;\r
- this.pwtype = pwtype;\r
-\r
- start = s;\r
- end = e;\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
-\r
- tree = new NJTree(seq, type, pwtype, start, end);\r
-\r
- treeCanvas = new TreeCanvas(av, tree, scrollPane, longestName);\r
-\r
- tree.reCount(tree.getTopNode());\r
- tree.findHeight(tree.getTopNode());\r
- scrollPane.add(treeCanvas);\r
-\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
-}\r
-\r
- protected void fitToWindow_actionPerformed(ActionEvent e)\r
- {\r
- treeCanvas.fitToWindow = fitToWindow.getState();\r
- 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
- /* if( treeCanvas==null )\r
- return;\r
-\r
- String size = fontSize.getLabel().substring( fontSize.getLabel().indexOf("-")+1);\r
-\r
- Object selection = JOptionPane.showInternalInputDialog(Desktop.desktop,\r
- "Select font size",\r
- "Font size",\r
- JOptionPane.QUESTION_MESSAGE,\r
- null, new String[]{"1","2","4","6","8","10","12","14","16","18","20"}\r
- ,"Font Size - "+size);\r
- if(selection!=null)\r
- {\r
- fontSize.setText("Font Size - " + selection);\r
-\r
- int i = Integer.parseInt(selection.toString());\r
- treeCanvas.setFontSize(i);\r
- }\r
- scrollPane.setViewportView(treeCanvas);\r
-*/\r
- }\r
-\r
- protected void distanceMenu_actionPerformed(ActionEvent e)\r
- {\r
- treeCanvas.setShowDistances(distanceMenu.getState());\r
- }\r
-\r
- protected void bootstrapMenu_actionPerformed(ActionEvent e)\r
- {\r
- treeCanvas.setShowBootstrap(bootstrapMenu.getState());\r
- }\r
-\r
-}\r
+package jalview.appletgui;
+
+import jalview.datamodel.*;
+import jalview.io.NewickFile;
+import jalview.analysis.*;
+import jalview.jbappletgui.GTreePanel;
+import java.awt.event.*;
+import java.util.*;
+import jalview.io.NewickFile;
+
+
+public class TreePanel extends GTreePanel
+{
+ SequenceI[] seq;
+ String type;
+ String pwtype;
+ AlignViewport av;
+ int start;
+ int end;
+ TreeCanvas treeCanvas;
+ NJTree tree;
+
+ public NJTree getTree()
+ {
+ return tree;
+ }
+
+ public TreePanel(AlignViewport av, Vector seqVector, String type, String pwtype, int s, int e)
+ {
+ super();
+
+ this.type = type;
+ this.pwtype = pwtype;
+
+ start = s;
+ end = e;
+
+ String longestName = "";
+ seq = new Sequence [seqVector.size()];
+ for (int i=0;i < seqVector.size();i++)
+ {
+ seq[i] = (Sequence) seqVector.elementAt(i);
+ if(seq[i].getName().length()>longestName.length())
+ longestName = seq[i].getName();
+ }
+
+ tree = new NJTree(seq, type, pwtype, start, end);
+
+ treeCanvas = new TreeCanvas(av, tree, scrollPane, longestName);
+
+ tree.reCount(tree.getTopNode());
+ tree.findHeight(tree.getTopNode());
+ scrollPane.add(treeCanvas);
+
+ }
+ public TreePanel(AlignViewport av, Vector seqVector, NewickFile newtree,
+ String type, String pwtype)
+ {
+ super();
+ // These are probably only arbitrary strings reflecting source of tree
+ this.type = type;
+ this.pwtype = pwtype;
+
+ start = 0;
+ end = seqVector.size();
+
+ String longestName = "";
+ seq = new Sequence [seqVector.size()];
+ for (int i=0;i < seqVector.size();i++)
+ {
+ seq[i] = (Sequence) seqVector.elementAt(i);
+ }
+ // This constructor matches sequence names to treenodes and sets up the tree layouts.
+ tree = new NJTree(seq, newtree);
+ // Now have to calculate longest name based on the leaves
+ Vector leaves = tree.findLeaves(tree.getTopNode(),new Vector());
+
+ for (int i=0;i < leaves.size();i++)
+ if (longestName.length()<((Sequence) ((SequenceNode) leaves.elementAt(i)).element()).getName().length())
+ longestName = TreeCanvas.PLACEHOLDER+((Sequence) ((SequenceNode) leaves.elementAt(i)).element()).getName();
+
+ tree.reCount(tree.getTopNode());
+ tree.findHeight(tree.getTopNode());
+
+ treeCanvas = new TreeCanvas(av, tree, scrollPane, longestName);
+ treeCanvas.setShowBootstrap(newtree.HasBootstrap());
+ treeCanvas.setShowDistances(newtree.HasDistances());
+ distanceMenu.setState(newtree.HasDistances());
+ bootstrapMenu.setState(newtree.HasBootstrap());
+ if (true) // JBPNote TODO: preference for always marking placeholders in new associated tree
+ placeholdersMenu.setState(treeCanvas.markPlaceholders);
+ scrollPane.add(treeCanvas);
+
+ }
+
+public String getText(String format) {
+ return null;
+}
+
+ protected void fitToWindow_actionPerformed(ActionEvent e)
+ {
+ treeCanvas.fitToWindow = fitToWindow.getState();
+ repaint();
+ }
+
+ public void newickOutput_actionPerformed(ActionEvent actionEvent)
+ {
+ jalview.io.NewickFile fout = new jalview.io.NewickFile(tree.getTopNode());
+ String output = fout.print(false, true);
+ CutAndPasteTransfer cap = new CutAndPasteTransfer(false);
+ cap.setText(output);
+ java.awt.Frame frame = new java.awt.Frame();
+ frame.add(cap);
+ jalview.bin.JalviewLite.addFrame(frame, type+" "+pwtype, 500,500);
+ }
+
+
+
+ protected void fontSize_actionPerformed(ActionEvent e)
+ {
+ /* if( treeCanvas==null )
+ return;
+
+ String size = fontSize.getLabel().substring( fontSize.getLabel().indexOf("-")+1);
+
+ Object selection = JOptionPane.showInternalInputDialog(Desktop.desktop,
+ "Select font size",
+ "Font size",
+ JOptionPane.QUESTION_MESSAGE,
+ null, new String[]{"1","2","4","6","8","10","12","14","16","18","20"}
+ ,"Font Size - "+size);
+ if(selection!=null)
+ {
+ fontSize.setText("Font Size - " + selection);
+
+ int i = Integer.parseInt(selection.toString());
+ treeCanvas.setFontSize(i);
+ }
+ scrollPane.setViewportView(treeCanvas);
+*/
+ }
+
+ protected void distanceMenu_actionPerformed(ActionEvent e)
+ {
+ treeCanvas.setShowDistances(distanceMenu.getState());
+ }
+
+ protected void bootstrapMenu_actionPerformed(ActionEvent e)
+ {
+ treeCanvas.setShowBootstrap(bootstrapMenu.getState());
+ }
+
+ protected void placeholdersMenu_actionPerformed(ActionEvent e)
+ {
+ treeCanvas.setMarkPlaceholders(placeholdersMenu.getState());
+ }
+
+}