From: jprocter Date: Fri, 20 May 2005 14:54:29 +0000 (+0000) Subject: sequence place holder reveal menu item. X-Git-Tag: Release_2_0~247 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=8d1b94fdb228e81f3deb79bff3c34f5f68db5f07;p=jalview.git sequence place holder reveal menu item. --- diff --git a/src/jalview/gui/TreeCanvas.java b/src/jalview/gui/TreeCanvas.java index d4c88de..f9cb39c 100755 --- a/src/jalview/gui/TreeCanvas.java +++ b/src/jalview/gui/TreeCanvas.java @@ -16,13 +16,14 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print NJTree tree; JScrollPane scrollPane; AlignViewport av; - + public static final String PLACEHOLDER=" * "; Font font; int fontSize = 12; boolean fitToWindow = true; boolean showDistances = false; boolean showBootstrap = false; + boolean markPlaceholders = false; int offx = 20; int offy = 20; @@ -122,10 +123,9 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print g.drawString(nodeLabel,xstart,ypos - 10); } - // Colour selected leaves differently - String name = node.getName(); + String name = (markPlaceholders && node.isPlaceholder()) ? (PLACEHOLDER+node.getName()) : node.getName(); FontMetrics fm = g.getFontMetrics(font); - int charWidth = fm.stringWidth(node.getName()) + 3; + int charWidth = fm.stringWidth(name) + 3; int charHeight = fm.getHeight(); Rectangle rect = new Rectangle(xend+20,ypos-charHeight, @@ -133,6 +133,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print nameHash.put((SequenceI)node.element(),rect); + // Colour selected leaves differently SequenceGroup selected = av.getSelectionGroup(); if (selected!=null && selected.sequences.contains((SequenceI)node.element())) { g.setColor(Color.gray); @@ -140,7 +141,7 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print g.fillRect(xend + 10, ypos - charHeight + 3,charWidth,charHeight); g.setColor(Color.white); } - g.drawString(node.getName(),xend+10,ypos); + g.drawString(name,xend+10,ypos); g.setColor(Color.black); } else { drawNode(g,(SequenceNode)node.left(), chunk,scale,width,offx,offy); @@ -496,6 +497,10 @@ public class TreeCanvas extends JPanel implements MouseListener, Runnable, Print this.showBootstrap = state; repaint(); } + public void setMarkPlaceholders(boolean state) { + this.markPlaceholders = state; + repaint(); + } } diff --git a/src/jalview/gui/TreePanel.java b/src/jalview/gui/TreePanel.java index c458638..3c571f8 100755 --- a/src/jalview/gui/TreePanel.java +++ b/src/jalview/gui/TreePanel.java @@ -78,11 +78,15 @@ public class TreePanel extends GTreePanel 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(); } // 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()); @@ -91,6 +95,10 @@ public class TreePanel extends GTreePanel treeCanvas.setShowBootstrap(newtree.HasBootstrap()); treeCanvas.setShowDistances(newtree.HasDistances()); scrollPane.setViewportView(treeCanvas); + distanceMenu.setSelected(newtree.HasDistances()); + bootstrapMenu.setSelected(newtree.HasBootstrap()); + if (true) // JBPNote TODO: preference for always marking placeholders in new associated tree + placeholdersMenu.setSelected(treeCanvas.markPlaceholders); } @@ -172,6 +180,10 @@ public class TreePanel extends GTreePanel treeCanvas.setShowBootstrap(bootstrapMenu.isSelected()); } + protected void placeholdersMenu_actionPerformed(ActionEvent e) + { + treeCanvas.setMarkPlaceholders(placeholdersMenu.isSelected()); + } protected void epsTree_actionPerformed(ActionEvent e) {