package jalview.ext.treeviewer; import java.awt.Container; import java.awt.Dimension; import java.awt.MenuContainer; import java.awt.image.ImageObserver; import javax.accessibility.Accessible; import javax.swing.RootPaneContainer; import javax.swing.WindowConstants; import javax.swing.event.InternalFrameListener; /** * Interface for implementing the (probably) top level frame of an external tree * viewer. Note that this extends many interfaces shared with Swing frames but * doesn't demand that an implementation actually is a Swing frame. * * @author kjvanderheide * */ public interface TreeFrameI extends Accessible, WindowConstants, RootPaneContainer, ImageObserver, MenuContainer { public void addFrameListener(InternalFrameListener listener); /** * Method for adding the actual frame to Jalview, probably through * {@link jalview.gui.Desktop#addInternalFrame(javax.swing.JInternalFrame, String, boolean, int, int, boolean, boolean)} * * @param title * @param makeVisible * @param width * @param height * @param resizable * @param ignoreMinSize */ public void addFrameToJalview(String title, boolean makeVisible, int width, int height, boolean resizable, boolean ignoreMinSize); /** * If the tree viewer used supports multiple trees in one frame this method * should perform the needed adaptations. */ public abstract void enableMultipleTrees(); public InternalFrameListener[] getFrameListeners(); public abstract int getNumberOfTrees(); public Container getTopLevelAncestor(); public abstract TreeI getTree(); public TreeControlsI getTreeControls(); public abstract TreePanelI getTreePanel(); public TreeViewerBindingI getViewBinding(); public boolean isShowing(); public void removeFrameListener(InternalFrameListener listener); /** * @see java.awt.Component#repaint() */ public void repaint(); public void setMaximumSize(Dimension maximumSize); public void setMinimumSize(Dimension minimumSize); public void setPreferredSize(Dimension preferredSize); public void setViewBinding(TreeViewerBindingI alignmentBinding); }