From 9645fa36888a246dc905404d0c758d783db70d7f Mon Sep 17 00:00:00 2001 From: jprocter Date: Thu, 26 May 2005 10:21:52 +0000 Subject: [PATCH] bug fix in jpred client. TreeViewer display state and gui consistency improved (treecanvas/Treepanel state exchange functions). --- src/jalview/gui/AlignFrame.java | 3 ++- src/jalview/gui/TreePanel.java | 39 ++++++++++++++++++++++++++++----------- src/jalview/ws/JPredClient.java | 1 + 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 1f04fa3..1183cd8 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -1069,7 +1069,8 @@ public class AlignFrame extends GAlignFrame if(!viewport.alignment.isAligned()) { JOptionPane.showMessageDialog(Desktop.desktop, "The sequences must be aligned before creating a tree.\n" - +"Try using the Pad function in the edit menu.", + +"Try using the Pad function in the edit menu,\n" + +"or one of the multiple sequence alignment web services.", "Sequences not aligned", JOptionPane.WARNING_MESSAGE); return; } 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 } diff --git a/src/jalview/ws/JPredClient.java b/src/jalview/ws/JPredClient.java index 0940be6..bb91119 100755 --- a/src/jalview/ws/JPredClient.java +++ b/src/jalview/ws/JPredClient.java @@ -27,6 +27,7 @@ public class JPredClient extends WSClient } public JPredClient(String title, SequenceI[] msf) { + setWebService(); wsInfo = new WebserviceInfo(WebServiceJobTitle, WebServiceReference); SequenceI seq = msf[0]; altitle = "JNet prediction on "+seq.getName()+" using alignment from "+title; -- 1.7.10.2