From 431b44bc25f290de99d6edd1f7f22c28f0f4d467 Mon Sep 17 00:00:00 2001 From: jprocter Date: Mon, 1 Jun 2009 15:52:28 +0000 Subject: [PATCH] prototype function for relabelling treenodes with different accession/labels --- src/jalview/gui/TreePanel.java | 60 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/src/jalview/gui/TreePanel.java b/src/jalview/gui/TreePanel.java index 0c937dd..eef07fa 100755 --- a/src/jalview/gui/TreePanel.java +++ b/src/jalview/gui/TreePanel.java @@ -690,4 +690,62 @@ public class TreePanel extends GTreePanel ex.printStackTrace(); } } -} + /** + * change node labels to the annotation referred to by labelClass + * TODO: promote to a datamodel modification that can be undone + * TODO: make argument one case of a generic transformation function ie { undoStep = apply(Tree, TransformFunction)}; + * @param labelClass + */ + public void changeNames(final String labelClass) + { + tree.applyToNodes(new NodeTransformI() { + + public void transform(BinaryNode node) + { + if (node instanceof SequenceNode && !((SequenceNode) node).isPlaceholder() && !((SequenceNode) node).isDummy()) + { + String newname=null; + SequenceI sq = (SequenceI) ((SequenceNode) node).element(); + if (sq!=null) + { + // search dbrefs, features and annotation + DBRefEntry[] refs = jalview.util.DBRefUtils.selectRefs(sq.getDBRef(), new String[] {labelClass.toUpperCase()}); + if (refs!=null) + { + for (int i=0; i