X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FTreePanel.java;h=61b0546264108027120db7cfd053e7088d747e18;hb=14bad6b2390493bb6ad030c6f3ea7cde4cba1b53;hp=42be37b1624c65f99aefa7a8e5401e719b88d9cd;hpb=7844cc401943fd9abb002e012b74f40e0afd36df;p=jalview.git diff --git a/src/jalview/appletgui/TreePanel.java b/src/jalview/appletgui/TreePanel.java index 42be37b..61b0546 100755 --- a/src/jalview/appletgui/TreePanel.java +++ b/src/jalview/appletgui/TreePanel.java @@ -22,19 +22,17 @@ package jalview.appletgui; import java.util.*; import java.awt.event.*; +import java.awt.*; import jalview.analysis.*; import jalview.datamodel.*; import jalview.io.*; -import jalview.jbappletgui.*; -public class TreePanel - extends GTreePanel +public class TreePanel extends Frame implements ActionListener, ItemListener { SequenceI[] seq; String type; String pwtype; - AlignmentPanel ap; int start; int end; TreeCanvas treeCanvas; @@ -58,11 +56,17 @@ public class TreePanel public TreePanel(AlignViewport av, Vector seqVector, String type, String pwtype, int s, int e) { - super(); - initTreePanel(av, seqVector, type, pwtype, s, e, null); + try + { + jbInit(); + this.setMenuBar(jMenuBar1); + } + catch (Exception ex) + { + ex.printStackTrace(); + } - // We know this tree has distances. JBPNote TODO: prolly should add this as a userdefined default - treeCanvas.setShowDistances(true); + initTreePanel(av, seqVector, type, pwtype, s, e, null); } /** @@ -77,7 +81,16 @@ public class TreePanel public TreePanel(AlignViewport av, Vector seqVector, NewickFile newtree, String type, String pwtype) { - super(); + try + { + jbInit(); + this.setMenuBar(jMenuBar1); + } + catch (Exception e) + { + e.printStackTrace(); + } + initTreePanel(av, seqVector, type, pwtype, 0, seqVector.size(), newtree); } @@ -127,6 +140,8 @@ public class TreePanel treeCanvas.setTree(tree); if(newtree!=null) { + distanceMenu.setState(newtree.HasDistances()); + bootstrapMenu.setState(newtree.HasBootstrap()); treeCanvas.setShowBootstrap(newtree.HasBootstrap()); treeCanvas.setShowDistances(newtree.HasDistances()); } @@ -137,65 +152,104 @@ public class TreePanel } } - public String getText(String format) + public void actionPerformed(ActionEvent evt) { - return null; + if(evt.getSource()==newickOutput) + newickOutput_actionPerformed(); + else if(evt.getSource()==fontSize) + fontSize_actionPerformed(); } - protected void fitToWindow_actionPerformed(ActionEvent e) + public void itemStateChanged(ItemEvent evt) { - treeCanvas.fitToWindow = fitToWindow.getState(); - repaint(); + if(evt.getSource()==fitToWindow) + treeCanvas.fitToWindow = fitToWindow.getState(); + + else if(evt.getSource()==distanceMenu) + treeCanvas.setShowDistances(distanceMenu.getState()); + + else if(evt.getSource()==bootstrapMenu) + treeCanvas.setShowBootstrap(bootstrapMenu.getState()); + + else if(evt.getSource()==placeholdersMenu) + treeCanvas.setMarkPlaceholders(placeholdersMenu.getState()); + + treeCanvas.repaint(); } - public void newickOutput_actionPerformed(ActionEvent actionEvent) + + public void newickOutput_actionPerformed() { jalview.io.NewickFile fout = new jalview.io.NewickFile(tree.getTopNode()); String output = fout.print(false, true); - CutAndPasteTransfer cap = new CutAndPasteTransfer(false, ap.alignFrame.applet); + CutAndPasteTransfer cap = new CutAndPasteTransfer(false, null); cap.setText(output); java.awt.Frame frame = new java.awt.Frame(); frame.add(cap); jalview.bin.JalviewLite.addFrame(frame, type + " " + pwtype, 500, 100); } - protected void fontSize_actionPerformed(ActionEvent e) + public java.awt.Font getTreeFont() { - /* 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); - */ + return treeCanvas.font; } - protected void distanceMenu_actionPerformed(ActionEvent e) + public void setTreeFont(java.awt.Font font) { - treeCanvas.setShowDistances(distanceMenu.getState()); + treeCanvas.font = font; + treeCanvas.repaint(); } - protected void bootstrapMenu_actionPerformed(ActionEvent e) + protected void fontSize_actionPerformed() { - treeCanvas.setShowBootstrap(bootstrapMenu.getState()); + if( treeCanvas==null ) + return; + + new FontChooser(this); } - protected void placeholdersMenu_actionPerformed(ActionEvent e) - { - treeCanvas.setMarkPlaceholders(placeholdersMenu.getState()); + + BorderLayout borderLayout1 = new BorderLayout(); + protected ScrollPane scrollPane = new ScrollPane(); + MenuBar jMenuBar1 = new MenuBar(); + Menu jMenu2 = new Menu(); + protected MenuItem fontSize = new MenuItem(); + protected CheckboxMenuItem bootstrapMenu = new CheckboxMenuItem(); + protected CheckboxMenuItem distanceMenu = new CheckboxMenuItem(); + protected CheckboxMenuItem placeholdersMenu = new CheckboxMenuItem(); + protected CheckboxMenuItem fitToWindow = new CheckboxMenuItem(); + Menu fileMenu = new Menu(); + MenuItem newickOutput = new MenuItem(); + + private void jbInit() throws Exception { + setLayout(borderLayout1); + this.setBackground(Color.white); + this.setFont(new java.awt.Font("Verdana", 0, 12)); + jMenu2.setLabel("View"); + fontSize.setLabel("Font..."); + fontSize.addActionListener(this); + bootstrapMenu.setLabel("Show Bootstrap Values"); + bootstrapMenu.addItemListener(this); + distanceMenu.setLabel("Show Distances"); + distanceMenu.addItemListener(this); + placeholdersMenu.setLabel("Mark Unassociated Leaves"); + placeholdersMenu.addItemListener(this); + fitToWindow.setState(true); + fitToWindow.setLabel("Fit To Window"); + fitToWindow.addItemListener(this); + fileMenu.setLabel("File"); + newickOutput.setLabel("Newick Format"); + newickOutput.addActionListener(this); + + add(scrollPane, BorderLayout.CENTER); + jMenuBar1.add(fileMenu); + jMenuBar1.add(jMenu2); + jMenu2.add(fitToWindow); + jMenu2.add(fontSize); + jMenu2.add(distanceMenu); + jMenu2.add(bootstrapMenu); + jMenu2.add(placeholdersMenu); + fileMenu.add(newickOutput); } }