X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FTreePanel.java;h=78bef801cda4eab910621a740031829d16d70773;hb=c521a798765bb3672e89ea8cda3241a97d6c6e73;hp=047c1d4cc749ca1bd2fafe27f12c3a4f0e599d30;hpb=9ec724cefe52ca1e3fa72d726557b0108a4b043a;p=jalview.git diff --git a/src/jalview/gui/TreePanel.java b/src/jalview/gui/TreePanel.java index 047c1d4..78bef80 100755 --- a/src/jalview/gui/TreePanel.java +++ b/src/jalview/gui/TreePanel.java @@ -53,12 +53,28 @@ public class TreePanel extends GTreePanel tree = new NJTree(seq, type, pwtype, start, end); treeCanvas = new TreeCanvas(av, tree, scrollPane, longestName); - + treeCanvas.setShowDistances(true); // We know this tree has distances. JBPNote TODO: prolly should add this as a userdefined default + setViewStateFromTreeCanvas(treeCanvas); tree.reCount(tree.getTopNode()); tree.findHeight(tree.getTopNode()); scrollPane.setViewportView(treeCanvas); } + private void setViewStateFromTreeCanvas(TreeCanvas tree) { + // update view menu state from treeCanvas render state + distanceMenu.setSelected(tree.showDistances); + bootstrapMenu.setSelected(tree.showBootstrap); + placeholdersMenu.setSelected(tree.markPlaceholders); + } + + private void setTreeCanvasFromViewState(TreeCanvas tree) { + // update view menu state from treeCanvas render state + tree.showDistances = distanceMenu.isSelected(); + tree.showBootstrap = bootstrapMenu.isSelected(); + tree.markPlaceholders = placeholdersMenu.isSelected(); + } + + public TreePanel(AlignViewport av, Vector seqVector, NewickFile newtree, String type, String pwtype) { @@ -80,11 +96,14 @@ public class TreePanel extends GTreePanel 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(); - + boolean has_placeholders = false; + for (int i=0;i < leaves.size();i++) { + SequenceNode lf = (SequenceNode) leaves.elementAt(i); + if (lf.isPlaceholder()) + has_placeholders = true; + if (longestName.length()<((Sequence) lf.element()).getName().length()) + longestName = TreeCanvas.PLACEHOLDER+((Sequence) lf.element()).getName(); + } tree.reCount(tree.getTopNode()); tree.findHeight(tree.getTopNode()); @@ -92,11 +111,9 @@ 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); - + treeCanvas.setMarkPlaceholders(has_placeholders); + setViewStateFromTreeCanvas(treeCanvas); + // JBPNote TODO: preference for always marking placeholders in new associated tree }