JAL-3081 is/setShowAutocalculatedAbove pulled up to interface
[jalview.git] / src / jalview / api / AlignViewportI.java
index 6cdc998..fa0a3b0 100644 (file)
  */
 package jalview.api;
 
+import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
 import jalview.analysis.Conservation;
+import jalview.analysis.TreeModel;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.AlignmentView;
-import jalview.datamodel.CigarArray;
 import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.ProfilesI;
 import jalview.datamodel.SearchResultsI;
@@ -33,9 +34,10 @@ import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.renderer.ResidueShaderI;
 import jalview.schemes.ColourSchemeI;
-import jalview.viewmodel.ViewportPositionProps;
+import jalview.viewmodel.ViewportRanges;
 
 import java.awt.Color;
+import java.awt.Font;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
@@ -47,11 +49,13 @@ import java.util.Map;
 public interface AlignViewportI extends ViewStyleI
 {
 
-  ViewportPositionProps getPosProps();
-  
-  int getEndRes();
-
-  int getStartRes();
+  /**
+   * Get the ranges object containing details of the start and end sequences and
+   * residues
+   * 
+   * @return
+   */
+  public ViewportRanges getRanges();
 
   /**
    * calculate the height for visible annotation, revalidating bounds where
@@ -124,6 +128,13 @@ public interface AlignViewportI extends ViewStyleI
   AlignmentAnnotation getAlignmentConsensusAnnotation();
 
   /**
+   * get the container for alignment gap annotation
+   * 
+   * @return
+   */
+  AlignmentAnnotation getAlignmentGapAnnotation();
+
+  /**
    * get the container for cDNA complement consensus annotation
    * 
    * @return
@@ -233,16 +244,6 @@ public interface AlignViewportI extends ViewStyleI
   void clearSequenceColours();
 
   /**
-   * This method returns the visible alignment as text, as seen on the GUI, ie
-   * if columns are hidden they will not be returned in the result. Use this for
-   * calculating trees, PCA, redundancy etc on views which contain hidden
-   * columns.
-   * 
-   * @return String[]
-   */
-  CigarArray getViewAsCigars(boolean selectedRegionOnly);
-
-  /**
    * return a compact representation of the current alignment selection to pass
    * to an analysis function
    * 
@@ -462,7 +463,83 @@ public interface AlignViewportI extends ViewStyleI
    */
   SearchResultsI getSearchResults();
 
-  int getStartSeq();
+  /**
+   * Updates view settings with the given font. You may need to call
+   * AlignmentPanel.fontChanged to update the layout geometry.
+   * 
+   * @param setGrid
+   *          when true, charWidth/height is set according to font metrics
+   */
+  void setFont(Font newFont, boolean b);
 
-  int getEndSeq();
+  /**
+   * Answers true if split screen protein and cDNA use the same font
+   * 
+   * @return
+   */
+  @Override
+  boolean isProteinFontAsCdna();
+
+  /**
+   * Set the flag for whether split screen protein and cDNA use the same font
+   * 
+   * @return
+   */
+  @Override
+  void setProteinFontAsCdna(boolean b);
+
+  public abstract TreeModel getCurrentTree();
+
+  public abstract void setCurrentTree(TreeModel tree);
+
+  /**
+   * @param update
+   *          - set the flag for updating structures on next repaint
+   */
+  void setUpdateStructures(boolean update);
+
+  /**
+   *
+   * @return true if structure views will be updated on next refresh
+   */
+  boolean isUpdateStructures();
+
+  /**
+   * check if structure views need to be updated, and clear the flag afterwards.
+   * 
+   * @return if an update is needed
+   */
+  boolean needToUpdateStructureViews();
+
+  /**
+   * Adds sequencegroup to the alignment in the view. Also adds a group to the
+   * complement view if one is defined.
+   * 
+   * @param sequenceGroup
+   *          - a group defined on sequences in the alignment held by the view
+   */
+  void addSequenceGroup(SequenceGroup sequenceGroup);
+
+  /**
+   * Returns true if autocalculated annotations are shown above other
+   * annotations, false if below
+   * 
+   * @return
+   */
+  boolean isShowAutocalculatedAbove();
+
+  /**
+   * Sets the flag for whether autocalculated annotations are shown above (true)
+   * or below (false) other annotations
+   * 
+   * @param showAutocalculatedAbove
+   */
+  void setShowAutocalculatedAbove(boolean showAutocalculatedAbove);
+
+  /**
+   * Sets the sort order to apply to annotations
+   * 
+   * @param sortAnnotationsBy
+   */
+  void setSortAnnotationsBy(SequenceAnnotationOrder sortAnnotationsBy);
 }