From: jprocter Date: Mon, 1 Jun 2009 15:52:28 +0000 (+0000) Subject: prototype function for relabelling treenodes with different accession/labels X-Git-Tag: Release_2_5~306 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=431b44bc25f290de99d6edd1f7f22c28f0f4d467;p=jalview.git prototype function for relabelling treenodes with different accession/labels --- 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