JAL-2826 added action performed for hiding collapsed sequences
[jalview.git] / src / jalview / ext / treeviewer / TreeFrameI.java
index 922c304..26f74c2 100644 (file)
@@ -10,36 +10,73 @@ 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.
+ * 
+ * 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);
 
 }