X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FFinder.java;h=3c72598179d0541eb6d445295361b8349b9b8543;hb=7d6575e94bed92bc06043d432576e3a39e8a8e75;hp=b87c170d6dc78b226ddb50793ebb114118b812fc;hpb=e1cd94839128776e14e51ded3f3be2dcc7e72273;p=jalview.git diff --git a/src/jalview/analysis/Finder.java b/src/jalview/analysis/Finder.java index b87c170..3c72598 100644 --- a/src/jalview/analysis/Finder.java +++ b/src/jalview/analysis/Finder.java @@ -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. * @@ -20,9 +20,15 @@ */ package jalview.analysis; -import java.util.*; +import jalview.datamodel.AlignmentI; +import jalview.datamodel.SearchResults; +import jalview.datamodel.Sequence; +import jalview.datamodel.SequenceGroup; +import jalview.util.Comparison; -import jalview.datamodel.*; +import java.util.Vector; + +import com.stevesoft.pat.Regex; public class Finder { @@ -33,15 +39,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; + Regex regex = null; /** * hold's last-searched position between calles to find(false) @@ -78,7 +86,7 @@ public class Finder { searchString = searchString.toUpperCase(); } - regex = new com.stevesoft.pat.Regex(searchString); + regex = new Regex(searchString); regex.setIgnoreCase(!caseSensitive); searchResults = new SearchResults(); idMatch = new Vector(); @@ -146,6 +154,19 @@ public class Finder break; } } + + if (isIncludeDescription() && seq.getDescription() != null + && regex.search(seq.getDescription())) + { + idMatch.addElement(seq); + hasResults = true; + if (!findAll) + { + // stop and return the match + found = true; + break; + } + } } item = seq.getSequenceAsString(); @@ -162,7 +183,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)); @@ -287,7 +308,7 @@ public class Finder /** * @return the selection */ - public jalview.datamodel.SequenceGroup getSelection() + public SequenceGroup getSelection() { return selection; } @@ -296,7 +317,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; } @@ -312,7 +333,7 @@ public class Finder /** * @return the regex */ - public com.stevesoft.pat.Regex getRegex() + public Regex getRegex() { return regex; } @@ -358,4 +379,14 @@ public class Finder { this.seqIndex = seqIndex; } + + public boolean isIncludeDescription() + { + return includeDescription; + } + + public void setIncludeDescription(boolean includeDescription) + { + this.includeDescription = includeDescription; + } }