JAL - 3690 AlignCalc rebuilt - FutureTask-based manager
[jalview.git] / src / jalview / api / AlignViewportI.java
index 6b3cbe8..2f992a6 100644 (file)
@@ -23,6 +23,7 @@ package jalview.api;
 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;
@@ -106,16 +107,16 @@ public interface AlignViewportI extends ViewStyleI
 
   ColumnSelection getColumnSelection();
 
-  ProfilesI getConsensusProfiles();
+  ProfilesI getSequenceConsensusHash();
 
   /**
    * Get consensus data table for the cDNA complement of this alignment (if any)
    * 
    * @return
    */
-  Hashtable[] getComplementConsensusHash();
+  Hashtable<String, Object>[] getComplementConsensusHash();
 
-  Hashtable[] getRnaStructureConsensusHash();
+  Hashtable<String, Object>[] getRnaStructureConsensusHash();
 
   boolean isIgnoreGapsConsensus();
 
@@ -139,7 +140,7 @@ public interface AlignViewportI extends ViewStyleI
    * 
    * @return
    */
-  AlignmentAnnotation getOccupancyAnnotation();
+  AlignmentAnnotation getAlignmentGapAnnotation();
 
   /**
    * get the container for cDNA complement consensus annotation
@@ -165,7 +166,7 @@ public interface AlignViewportI extends ViewStyleI
    * 
    * @return
    */
-  AlignCalcManagerI getCalcManager();
+  AlignCalcManagerI2 getCalcManager();
 
   /**
    * get the percentage gaps allowed in a conservation calculation
@@ -178,14 +179,14 @@ public interface AlignViewportI extends ViewStyleI
    * 
    * @param hconsensus
    */
-  void setConsensusProfiles(ProfilesI hconsensus);
+  void setSequenceConsensusHash(ProfilesI hconsensus);
 
   /**
    * Set the cDNA complement consensus for the viewport
    * 
    * @param hconsensus
    */
-  void setComplementConsensusHash(Hashtable[] hconsensus);
+  void setComplementConsensusHash(Hashtable<String, Object>[] hconsensus);
 
   /**
    * 
@@ -199,7 +200,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
@@ -388,14 +390,14 @@ public interface AlignViewportI extends ViewStyleI
    * 
    * @return a copy of this view's current display settings
    */
-  ViewStyleI getViewStyle();
+  public ViewStyleI getViewStyle();
 
   /**
    * update the view's display settings with the given style set
    * 
    * @param settingsForView
    */
-  void setViewStyle(ViewStyleI settingsForView);
+  public void setViewStyle(ViewStyleI settingsForView);
 
   /**
    * Returns a viewport which holds the cDna for this (protein), or vice versa,
@@ -439,7 +441,17 @@ public interface AlignViewportI extends ViewStyleI
    */
   void setFollowHighlight(boolean b);
 
-  void applyFeaturesStyle(FeatureSettingsModelI featureSettings);
+  /**
+   * configure the feature renderer with predefined feature settings
+   * 
+   * @param featureSettings
+   */
+  public void applyFeaturesStyle(FeatureSettingsModelI featureSettings);
+
+  /**
+   * Apply the given feature settings on top of existing feature settings.
+   */
+  public void mergeFeaturesStyle(FeatureSettingsModelI featureSettings);
 
   /**
    * check if current selection group is defined on the view, or is simply a
@@ -509,7 +521,44 @@ public interface AlignViewportI extends ViewStyleI
 
   boolean isInfoLetterHeight();
 
-  abstract TreeModel getCurrentTree();
+  public abstract TreeModel getCurrentTree();
+
+  /**
+   * Answers a data bean containing data for export as configured by the
+   * supplied options
+   * 
+   * @param options
+   * @return
+   */
+  AlignmentExportData getAlignExportData(AlignExportSettingsI options);
+
+  public abstract void setCurrentTree(TreeModel tree);
+
+  /**
+   * @param update
+   *          - set the flag for updating structures on next repaint
+   */
+  void setUpdateStructures(boolean update);
 
-  abstract void setCurrentTree(TreeModel tree);
+  /**
+   *
+   * @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);
 }