X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSearchResults.java;h=909a0fef644be43cff883bbf3eb047bb670285eb;hb=692669611f7244598bd34df92e8a3e5cbaf9bd2e;hp=7c3bba70cfb05baea401cc0fb178ea188b908f2d;hpb=3d2750d886f1b6015b2fc3f8671a6cf3e32bb07a;p=jalview.git diff --git a/src/jalview/datamodel/SearchResults.java b/src/jalview/datamodel/SearchResults.java index 7c3bba7..909a0fe 100755 --- a/src/jalview/datamodel/SearchResults.java +++ b/src/jalview/datamodel/SearchResults.java @@ -234,8 +234,8 @@ public class SearchResults implements SearchResultsI { mfound = true; matchStart = sequence.findIndex(m.start) - 1; - matchEnd = m.start == m.end ? matchStart : sequence - .findIndex(m.end) - 1; + matchEnd = m.start == m.end ? matchStart + : sequence.findIndex(m.end) - 1; } if (mfound) @@ -349,8 +349,10 @@ public class SearchResults implements SearchResultsI } /** - * Two SearchResults are considered equal if they contain the same matches in - * the same order. + * Two SearchResults are considered equal if they contain the same matches + * (Sequence, start position, end position) in the same order + * + * @see Match#equals(Object) */ @Override public boolean equals(Object obj) @@ -368,4 +370,27 @@ public class SearchResults implements SearchResultsI { matches.addAll(toAdd.getResults()); } + + @Override + public List getMatchingSubSequences() + { + List seqs = new ArrayList<>(); + + /* + * assemble dataset sequences, and template new sequence features, + * for the amend features dialog + */ + for (SearchResultMatchI match : matches) + { + SequenceI seq = match.getSequence(); + while (seq.getDatasetSequence() != null) + { + seq = seq.getDatasetSequence(); + } + // getSubSequence is index-base0, findIndex returns index-base1 + seqs.add(seq.getSubSequence(seq.findIndex(match.getStart()) - 1, + seq.findIndex(match.getEnd()))); + } + return seqs; + } }