Merge branch 'develop' into features/JAL-518_justify_seqs_in_region
[jalview.git] / src / jalview / api / AlignViewportI.java
index 56d25d5..e7afee0 100644 (file)
  */
 package jalview.api;
 
+import java.awt.Color;
+import java.awt.Font;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
 import jalview.analysis.Conservation;
 import jalview.analysis.TreeModel;
 import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentExportData;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.AlignmentView;
 import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.ContactListI;
+import jalview.datamodel.ContactMatrixI;
 import jalview.datamodel.ProfilesI;
 import jalview.datamodel.SearchResultsI;
 import jalview.datamodel.SequenceCollectionI;
@@ -35,13 +45,6 @@ import jalview.renderer.ResidueShaderI;
 import jalview.schemes.ColourSchemeI;
 import jalview.viewmodel.ViewportRanges;
 
-import java.awt.Color;
-import java.awt.Font;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
 /**
  * @author jimp
  * 
@@ -108,9 +111,9 @@ public interface AlignViewportI extends ViewStyleI
    * 
    * @return
    */
-  Hashtable[] getComplementConsensusHash();
+  Hashtable<String, Object>[] getComplementConsensusHash();
 
-  Hashtable[] getRnaStructureConsensusHash();
+  Hashtable<String, Object>[] getRnaStructureConsensusHash();
 
   boolean isIgnoreGapsConsensus();
 
@@ -178,7 +181,7 @@ public interface AlignViewportI extends ViewStyleI
    * 
    * @param hconsensus
    */
-  void setComplementConsensusHash(Hashtable[] hconsensus);
+  void setComplementConsensusHash(Hashtable<String, Object>[] hconsensus);
 
   /**
    * 
@@ -192,7 +195,8 @@ public interface AlignViewportI extends ViewStyleI
    * 
    * @param hStrucConsensus
    */
-  void setRnaStructureConsensusHash(Hashtable[] hStrucConsensus);
+  void setRnaStructureConsensusHash(
+          Hashtable<String, Object>[] hStrucConsensus);
 
   /**
    * Sets the colour scheme for the background alignment (as distinct from
@@ -474,6 +478,17 @@ public interface AlignViewportI extends ViewStyleI
   SearchResultsI getSearchResults();
 
   /**
+   * Retrieve a ContactListI corresponding to column in an annotation row in an
+   * alignment.
+   * 
+   * @param _aa
+   *          - annotation with associated matrix data
+   * @param column
+   *          - column in alignment where _aa is associated
+   */
+  ContactListI getContactList(AlignmentAnnotation _aa, int column);
+
+  /**
    * Updates view settings with the given font. You may need to call
    * AlignmentPanel.fontChanged to update the layout geometry.
    * 
@@ -498,9 +513,18 @@ public interface AlignViewportI extends ViewStyleI
   @Override
   void setProteinFontAsCdna(boolean b);
 
-  public abstract TreeModel getCurrentTree();
+  TreeModel getCurrentTree();
 
-  public abstract void setCurrentTree(TreeModel tree);
+  void setCurrentTree(TreeModel tree);
+
+  /**
+   * Answers a data bean containing data for export as configured by the
+   * supplied options
+   * 
+   * @param options
+   * @return
+   */
+  AlignmentExportData getAlignExportData(AlignExportSettingsI options);
 
   /**
    * @param update
@@ -535,10 +559,22 @@ public interface AlignViewportI extends ViewStyleI
    * regions of the alignment
    * 
    * @param selectedRegionOnly
-   *                             if true, and the view has a selection region,
-   *                             then only the intersection of visible columns
-   *                             with the selection region is returned
+   *          if true, and the view has a selection region, then only the
+   *          intersection of visible columns with the selection region is
+   *          returned
    * @return
    */
   Iterator<int[]> getViewAsVisibleContigs(boolean selectedRegionOnly);
+  /**
+   * notify all concerned that the alignment data has changed and derived data
+   * needs to be recalculated
+   */
+  public void notifyAlignmentChanged();
+
+  /**
+   * retrieve a matrix associated with the view's alignment's annotation 
+   * @param alignmentAnnotation
+   * @return contact matrix or NULL
+   */
+  ContactMatrixI getContactMatrix(AlignmentAnnotation alignmentAnnotation);
 }