public void highlightSearchResults(SearchResults results)
{
seqPanel.seqCanvas.highlightSearchResults(results);
-
+ }
+ /**
+ * scroll the view to show the position of the highlighted
+ * region in results (if any)
+ * @param results
+ */
+ public void scrollToPosition(SearchResults results)
+ {
// do we need to scroll the panel?
- if (results != null)
+ if (results != null && results.getSize()>0)
{
- SequenceI seq = results.getResultSequence(0);
- int seqIndex = av.alignment.findIndex(seq);
- int start = seq.findIndex(results.getResultStart(0)) - 1;
- int end = seq.findIndex(results.getResultEnd(0)) - 1;
-
+ int seqIndex = av.alignment.findIndex(results);
+ if (seqIndex==-1)
+ {
+ return;
+ }
+ SequenceI seq = av.alignment.getSequenceAt(seqIndex);
+ int [] r = results.getResults(seq, seq.getStart(), seq.getEnd());
+ if (r==null)
+ {
+ return;
+ }
+ int start = r[0];
+ int end = r[1];
+ if (start<0)
+ {
+ return;
+ }
+ if (end==seq.getEnd())
+ {
+ return;
+ }
if (!av.wrapAlignment)
{
if ((av.getStartRes() > end)