Merge branch 'features/JAL-1605_html-svg-export' into develop
[jalview.git] / src / jalview / api / AlignViewControllerI.java
index be845bc..9bd3f45 100644 (file)
@@ -22,13 +22,18 @@ package jalview.api;
 
 /**
  * prototype abstract controller for a Jalview alignment view
+ * 
  * @author jimp
  * 
- * All operations should return true if the view has changed as a result of the operation
- * @param <ViewportI>
- *
+ *         All operations should return true if the view has changed as a result
+ *         of the operation
+ * 
+ *         The controller holds methods that operate on an alignment view,
+ *         modifying its state in some way that may result in side effects
+ *         reflected in an associated GUI
+ * 
  */
-public interface AlignViewControllerI<ViewportI>
+public interface AlignViewControllerI
 {
 
   public boolean makeGroupsFromSelection();
@@ -39,16 +44,36 @@ public interface AlignViewControllerI<ViewportI>
 
   public boolean deleteGroups();
 
-  public void setViewportAndAlignmentPanel(AlignViewportI viewport, AlignmentViewPanel alignPanel);
+  public void setViewportAndAlignmentPanel(AlignViewportI viewport,
+          AlignmentViewPanel alignPanel);
 
   /**
-   * Mark columns in the current column selection according to positions of sequence features
-   * @param invert - when set, mark all but columns containing given type
-   * @param extendCurrent - when set, do not clear existing column selection
-   * @param toggle - rather than explicitly set, toggle selection state
-   * @param featureType - feature type string
+   * Mark columns in the current column selection according to positions of
+   * sequence features
+   * 
+   * @param invert
+   *          - when set, mark all but columns containing given type
+   * @param extendCurrent
+   *          - when set, do not clear existing column selection
+   * @param toggle
+   *          - rather than explicitly set, toggle selection state
+   * @param featureType
+   *          - feature type string
    * @return true if operation affected state
    */
-  boolean markColumnsContainingFeatures(boolean invert, boolean extendCurrent, boolean clearColumns, String featureType);
+  boolean markColumnsContainingFeatures(boolean invert,
+          boolean extendCurrent, boolean clearColumns, String featureType);
+
+  /**
+   * sort the alignment or current selection by average score over the given set of features
+   * @param typ list of feature names or null to use currently displayed features
+   */
+  void sortAlignmentByFeatureScore(String[] typ);
+
+  /**
+   * sort the alignment or current selection by distribution of the given set of features
+   * @param typ list of feature names or null to use currently displayed features
+   */
+  void sortAlignmentByFeatureDensity(String[] typ);
 
 }