automatic scrolling option added to view
[jalview.git] / src / jalview / appletgui / AlignmentPanel.java
index c2bdaf0..7e42d34 100755 (executable)
@@ -228,15 +228,38 @@ public class AlignmentPanel extends Panel implements AdjustmentListener
   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)