1 package jalview.ext.treeviewer;
3 import jalview.datamodel.SequenceI;
4 import jalview.ext.archaeopteryx.JalviewBinding;
5 import jalview.util.MessageManager;
6 import jalview.viewmodel.AlignmentViewport;
8 import java.awt.Dimension;
10 import java.util.HashMap;
14 * Static class containing generic methods for
16 * @author kjvanderheide
19 public final class TreeViewerUtils
22 * All tree viewers should be added to this map so that Jalview saves them to
25 private static Map<TreeFrameI, TreeViewerBindingI> activeViews = new HashMap<>();
32 public static TreeFrameI addTreeViewFrameToJalview(
33 final TreeFrameI treeFrame)
37 treeFrame.setMinimumSize(new Dimension(width, height));
38 // aptxApp.setFont(Desktop.instance.getFont());
39 // aptxApp.getMainPanel().setFont(Desktop.instance.getFont());
40 String frameTitle = MessageManager.getString("label.aptx_title");
41 File treeFile = treeFrame.getTreePanel().getTreeFile();
44 frameTitle += MessageManager.formatMessage("label.of_x",
46 { treeFile.getAbsolutePath() });
48 // Usually redundant as this is done when associating nodes as well but that
49 // step could be bypassed
50 activeViews.put(treeFrame, treeFrame.getViewBinding());
52 treeFrame.addFrameToJalview(frameTitle, true, width, height, true,
54 treeFrame.getTreeControls().displayEntireTree();
62 * @param jalviewAlignViewport
63 * @param alignMappedToNodes
64 * @param nodesMappedToAlign
67 public static TreeViewerBindingI associateNodesWithJalviewSequences(
68 final TreeFrameI treeFrame,
69 final AlignmentViewport jalviewAlignViewport,
70 final Map<SequenceI, TreeNodeI> alignMappedToNodes,
71 final Map<TreeNodeI, SequenceI> nodesMappedToAlign)
73 TreeViewerBindingI treeBinding = new JalviewBinding(treeFrame,
75 alignMappedToNodes, nodesMappedToAlign);
76 jalviewAlignViewport.setCurrentExtTree(treeFrame.getTree());
77 activeViews.put(treeFrame, treeFrame.getViewBinding());
82 public static Map<TreeFrameI, TreeViewerBindingI> getActiveTreeViews()