JAL-1807
[jalview.git] / src / jalview / analysis / Finder.java
index 61e5709..3562dee 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
@@ -24,9 +24,14 @@ import jalview.datamodel.AlignmentI;
 import jalview.datamodel.SearchResults;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceGroup;
+import jalview.jsdev.RegExp;
+import jalview.jsdev.api.RegExpInterface;
+import jalview.util.Comparison;
 
 import java.util.Vector;
 
+//import com.stevesoft.pat.Regex;
+
 public class Finder
 {
   /**
@@ -36,15 +41,17 @@ public class Finder
 
   AlignmentI alignment;
 
-  jalview.datamodel.SequenceGroup selection = null;
+  SequenceGroup selection = null;
 
   Vector idMatch = null;
 
   boolean caseSensitive = false;
 
+  private boolean includeDescription = false;
+
   boolean findAll = false;
 
-  com.stevesoft.pat.Regex regex = null;
+  RegExpInterface regex = null;
 
   /**
    * hold's last-searched position between calles to find(false)
@@ -81,7 +88,7 @@ public class Finder
     {
       searchString = searchString.toUpperCase();
     }
-    regex = new com.stevesoft.pat.Regex(searchString);
+    regex = RegExp.newRegex(searchString);
     regex.setIgnoreCase(!caseSensitive);
     searchResults = new SearchResults();
     idMatch = new Vector();
@@ -150,7 +157,8 @@ public class Finder
           }
         }
 
-        if (regex.search(seq.getDescription()))
+        if (isIncludeDescription() && seq.getDescription() != null
+                && regex.search(seq.getDescription()))
         {
           idMatch.addElement(seq);
           hasResults = true;
@@ -177,7 +185,7 @@ public class Finder
 
       for (int j = 0; j < item.length(); j++)
       {
-        if (!jalview.util.Comparison.isGap(item.charAt(j)))
+        if (!Comparison.isGap(item.charAt(j)))
         {
           noGapsSB.append(item.charAt(j));
           spaces.addElement(new Integer(insertCount));
@@ -302,7 +310,7 @@ public class Finder
   /**
    * @return the selection
    */
-  public jalview.datamodel.SequenceGroup getSelection()
+  public SequenceGroup getSelection()
   {
     return selection;
   }
@@ -311,7 +319,7 @@ public class Finder
    * @param selection
    *          the selection to set
    */
-  public void setSelection(jalview.datamodel.SequenceGroup selection)
+  public void setSelection(SequenceGroup selection)
   {
     this.selection = selection;
   }
@@ -327,7 +335,7 @@ public class Finder
   /**
    * @return the regex
    */
-  public com.stevesoft.pat.Regex getRegex()
+  public RegExpInterface getRegex()
   {
     return regex;
   }
@@ -373,4 +381,14 @@ public class Finder
   {
     this.seqIndex = seqIndex;
   }
+
+  public boolean isIncludeDescription()
+  {
+    return includeDescription;
+  }
+
+  public void setIncludeDescription(boolean includeDescription)
+  {
+    this.includeDescription = includeDescription;
+  }
 }