51c897edfc2b4b46a9c41bad290780f6ae9dfb4e
[jalview.git] / src / jalview / ext / treeviewer / TreeFrameI.java
1 package jalview.ext.treeviewer;
2
3 import java.awt.Container;
4 import java.awt.Dimension;
5 import java.awt.MenuContainer;
6 import java.awt.image.ImageObserver;
7
8 import javax.accessibility.Accessible;
9 import javax.swing.RootPaneContainer;
10 import javax.swing.WindowConstants;
11 import javax.swing.event.InternalFrameListener;
12
13 /**
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.
17  * 
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.
21  * 
22  * @author kjvanderheide
23  *
24  */
25 public interface TreeFrameI
26         extends Accessible, WindowConstants, RootPaneContainer,
27         ImageObserver, MenuContainer
28 {
29   public void addFrameListener(InternalFrameListener listener);
30
31   /**
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)}
34    * 
35    * @param title
36    * @param makeVisible
37    * @param width
38    * @param height
39    * @param resizable
40    * @param ignoreMinSize
41    */
42   public void addFrameToJalview(String title, boolean makeVisible,
43           int width, int height, boolean resizable, boolean ignoreMinSize);
44
45   /**
46    * If the tree viewer used supports multiple trees in one frame this method
47    * should perform the needed adaptations.
48    */
49   public abstract void enableMultipleTrees();
50
51   public InternalFrameListener[] getFrameListeners();
52
53   public abstract int getNumberOfTrees();
54
55   public Container getTopLevelAncestor();
56
57   public abstract TreeI getTree();
58
59   public TreeControlsI getTreeControls();
60
61   public abstract TreePanelI getTreePanel();
62
63   public TreeViewerBindingI getViewBinding();
64
65   public boolean isShowing();
66
67   public void removeFrameListener(InternalFrameListener listener);
68
69   /**
70    * @see java.awt.Component#repaint()
71    */
72   public void repaint();
73
74   public void setMaximumSize(Dimension maximumSize);
75
76   public void setMinimumSize(Dimension minimumSize);
77
78   public void setPreferredSize(Dimension preferredSize);
79
80   public void setViewBinding(TreeViewerBindingI alignmentBinding);
81
82 }