+ *\r
+ * Update jalview newick representation with TreeNode map\r
+\r
+ * @param tp the treepanel that this tree is bound to.\r
+ */\r
+ public void UpdateSequenceTreeMap(TreePanel tp)\r
+ {\r
+ if (tp==null || tree!=null)\r
+ return;\r
+ Vector leaves = new Vector();\r
+ tp.getTree().findLeaves(tp.getTree().getTopNode(), leaves);\r
+ Treenode[] tn = tree.getTreenode(); // todo: select nodes for this particular tree\r
+ int sz = tn.length;\r
+ int i = 0;\r
+ \r
+ while (i < sz)\r
+ {\r
+ Treenode node = tn[i++];\r
+ BinaryNode mappednode = findNodeSpec(node.getNodespec(),leaves);\r
+ if (mappednode!=null && mappednode instanceof SequenceNode) {\r
+ SequenceNode leaf = (SequenceNode) leaves.elementAt(i++);\r
+ // check if we can make the specified association\r
+ Object jvseq = null;\r
+ int vrf=0,refv=0;\r
+ while (jvseq==null && vrf<node.getVrefCount())\r
+ {\r
+ if (refv<node.getVref(vrf).getRefsCount())\r
+ {\r
+ Object noderef = node.getVref(vrf).getRefs(refv++);\r
+ if (noderef instanceof AlignmentSequence)\r
+ {\r
+ // we only make these kind of associations\r
+ jvseq = getvObj2jv((Vobject) noderef);\r
+ }\r
+ } else {\r
+ refv=0;\r
+ vrf++;\r
+ }\r
+ }\r
+ if (jvseq instanceof SequenceI)\r
+ {\r
+ leaf.setElement(jvseq);\r
+ leaf.setPlaceholder(false);\r
+ } else {\r
+ leaf.setPlaceholder(true);\r
+ leaf.setElement(new Sequence(leaf.getName(), "THISISAPLACEHLDER"));\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ /// TODO: refactor to vamsas :start \r
+ /**\r