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.
+ *
+ * Frames should be added to Jalview's desktop via
+ * {@link TreeViewerUtils#addTreeViewFrameToJalview(TreeFrameI)} to ensure that
+ * they are registered as an active tree view.
+ *
+ * @author kjvanderheide
+ *
+ */
public interface TreeFrameI
extends Accessible, WindowConstants, RootPaneContainer,
ImageObserver, MenuContainer
{
- public abstract TreePanelI getTreePanel();
+ public void addFrameListener(InternalFrameListener listener);
- public abstract TreeI getTree();
+ /**
+ * Method for adding the actual frame to Jalview, probably by calling
+ * {@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 abstract void checkMultipleTrees();
+ public InternalFrameListener[] getFrameListeners();
public abstract int getNumberOfTrees();
+ public Container getTopLevelAncestor();
+
+ public abstract TreeI getTree();
+
public TreeControlsI getTreeControls();
- public void addFrameListener(InternalFrameListener listener);
+ public abstract TreePanelI getTreePanel();
- public void removeFrameListener(InternalFrameListener listener);
+ public TreeViewerBindingI getViewBinding();
- public InternalFrameListener[] getFrameListeners();
+ public boolean isShowing();
- public void repaint();
+ public void removeFrameListener(InternalFrameListener listener);
- public void setMinimumSize(Dimension dimension);
+ /**
+ * @see java.awt.Component#repaint()
+ */
+ public void repaint();
- public boolean isShowing();
+ public void setMaximumSize(Dimension maximumSize);
- public Container getTopLevelAncestor();
+ public void setMinimumSize(Dimension minimumSize);
- public void addFrameToJalview(String title, boolean makeVisible,
- int width, int height, boolean resizable, boolean ignoreMinSize);
+ public void setPreferredSize(Dimension preferredSize);
+ public void setViewBinding(TreeViewerBindingI alignmentBinding);
}