1 package jalview.ext.treeviewer;
3 import java.awt.Container;
4 import java.awt.Dimension;
5 import java.awt.MenuContainer;
6 import java.awt.image.ImageObserver;
8 import javax.accessibility.Accessible;
9 import javax.swing.RootPaneContainer;
10 import javax.swing.WindowConstants;
11 import javax.swing.event.InternalFrameListener;
14 * Interface for implementing the (probably) top level frame of an external tree
15 * viewer. Note that this extends many interfaces shared with Swing frames but
16 * doesn't demand that an implementation actually is a Swing frame.
18 * Frames should be added to Jalview's desktop via
19 * {@link TreeViewerUtils#addTreeViewFrameToJalview(TreeFrameI)} to ensure that
20 * they are registered as an active tree view.
22 * @author kjvanderheide
25 public interface TreeFrameI
26 extends Accessible, WindowConstants, RootPaneContainer,
27 ImageObserver, MenuContainer
29 public void addFrameListener(InternalFrameListener listener);
32 * Method for adding the actual frame to Jalview, probably through
33 * {@link jalview.gui.Desktop#addInternalFrame(javax.swing.JInternalFrame, String, boolean, int, int, boolean, boolean)}
40 * @param ignoreMinSize
42 public void addFrameToJalview(String title, boolean makeVisible,
43 int width, int height, boolean resizable, boolean ignoreMinSize);
46 * If the tree viewer used supports multiple trees in one frame this method
47 * should perform the needed adaptations.
49 public abstract void enableMultipleTrees();
51 public InternalFrameListener[] getFrameListeners();
53 public abstract int getNumberOfTrees();
55 public Container getTopLevelAncestor();
57 public abstract TreeI getTree();
59 public TreeControlsI getTreeControls();
61 public abstract TreePanelI getTreePanel();
63 public TreeViewerBindingI getViewBinding();
65 public boolean isShowing();
67 public void removeFrameListener(InternalFrameListener listener);
70 * @see java.awt.Component#repaint()
72 public void repaint();
74 public void setMaximumSize(Dimension maximumSize);
76 public void setMinimumSize(Dimension minimumSize);
78 public void setPreferredSize(Dimension preferredSize);
80 public void setViewBinding(TreeViewerBindingI alignmentBinding);