Merge branch 'develop' (JAL-4102 2.11.2.6 patch release) into features/r2_11_2_alphaf...
[jalview.git] / src / jalview / api / FinderI.java
index 71b35ef..697072b 100644 (file)
  */
 package jalview.api;
 
+import java.util.List;
+
 import jalview.datamodel.SearchResultsI;
 import jalview.datamodel.SequenceI;
 
-import java.util.List;
-
 /**
  * An interface for searching for a pattern in an aligment
  */
@@ -38,14 +38,24 @@ public interface FinderI
    * If the viewport has an active selection, then the find is restricted to the
    * selection region. Sequences matched by id or description can be retrieved
    * by getIdMatches(), and matched residue patterns by getSearchResults().
+   * <p>
+   * If {@code ignoreHidden} is true, then any residues in hidden columns are
+   * ignored (skipped) when matching, so for example pattern {@code KRT} would
+   * match sequence {@code KRqmT} (where {@code qm} are in hidden columns).
+   * <p>
+   * Matches of entirely hidden patterns are not returned. Matches that span
+   * hidden regions on one or both sides may be returned.
    * 
    * @param theSearchString
    * @param caseSensitive
    * @param searchDescription
+   * @param searchFeatureDesc
+   * @param ignoreHidden
    * @return
    */
   void findAll(String theSearchString, boolean caseSensitive,
-          boolean searchDescription);
+          boolean searchDescription, boolean searchFeatureDesc,
+          boolean ignoreHidden);
 
   /**
    * Finds the next match for the given search string (interpreted as a regular
@@ -55,14 +65,21 @@ public interface FinderI
    * an active selection, then the find is restricted to the selection region.
    * Sequences matched by id or description can be retrieved by getIdMatches(),
    * and matched residue patterns by getSearchResults().
+   * <p>
+   * If {@code ignoreHidden} is true, any hidden residues are skipped (matches
+   * may span them). If false, they are included for matching purposes. In
+   * either cases, entirely hidden matches are not returned.
    * 
    * @param theSearchString
    * @param caseSensitive
    * @param searchDescription
+   * @param searchFeatureDesc
+   * @param ignoreHidden
    * @return
    */
   void findNext(String theSearchString, boolean caseSensitive,
-          boolean searchDescription);
+          boolean searchDescription, boolean searchFeatureDesc,
+          boolean ignoreHidden);
 
   /**
    * Returns the (possibly empty) list of sequences matched on sequence name or
@@ -79,4 +96,6 @@ public interface FinderI
    */
   SearchResultsI getSearchResults();
 
+  void setFeatureRenderer(FeatureRenderer featureRenderer);
+
 }
\ No newline at end of file