New implementation for holding search results
[jalview.git] / src / jalview / appletgui / AlignmentPanel.java
index 0e9a0d8..0423cbb 100755 (executable)
@@ -185,49 +185,48 @@ public class AlignmentPanel extends Panel implements AdjustmentListener
     return new Dimension(idWidth, idPanel.idCanvas.getSize().height);\r
   }\r
 \r
-  public void highlightSearchResults(int[] results)\r
+  public void highlightSearchResults(SearchResults results)\r
   {\r
     seqPanel.seqCanvas.highlightSearchResults(results);\r
 \r
-    // do we need to scroll the panel?\r
+   // do we need to scroll the panel?\r
     if (results != null)\r
     {\r
-      SequenceI seq = av.alignment.getSequenceAt(results[0]);\r
-      int start = seq.findIndex(results[1]) - 1;\r
-      int end = seq.findIndex(results[2]) - 1;\r
+      SequenceI seq = results.getResultSequence(0);\r
+      int seqIndex = av.alignment.findIndex(seq);\r
+      int start = seq.findIndex(results.getResultStart(0)) - 1;\r
+      int end = seq.findIndex(results.getResultEnd(0)) - 1;\r
 \r
-      if(!av.wrapAlignment)\r
-      {\r
-        if ( (av.getStartRes() > start) || (av.getEndRes() < end) ||\r
-            ( (av.getStartSeq() > results[0]) ||\r
-             (av.getEndSeq() < results[0])))\r
+        if(!av.wrapAlignment)\r
         {\r
-          int newy = results[0];\r
-          if(start > av.alignment.getWidth() - hextent)\r
-          {\r
-            start = av.alignment.getWidth() - hextent;\r
-            if(start<0)\r
-              start = 0;\r
-          }\r
-          if(newy > av.alignment.getHeight() - vextent)\r
+          if ( (av.getStartRes() > end)  || (av.getEndRes() < start) ||\r
+             ( (av.getStartSeq() > seqIndex) || (av.getEndSeq() < seqIndex)))\r
           {\r
-            newy = av.alignment.getHeight() - vextent;\r
-            if(newy<0)\r
-              newy = 0;\r
+            if (start > av.alignment.getWidth() - hextent)\r
+            {\r
+              start = av.alignment.getWidth() - hextent;\r
+              if (start < 0)\r
+                start = 0;\r
+            }\r
+            if (seqIndex > av.alignment.getHeight() - vextent)\r
+            {\r
+              seqIndex = av.alignment.getHeight() - vextent;\r
+              if (seqIndex < 0)\r
+                seqIndex = 0;\r
+            }\r
+            setScrollValues(start, seqIndex);\r
           }\r
-          setScrollValues(start, newy);\r
         }\r
-      }\r
-      else\r
-      {\r
-        int cwidth = seqPanel.seqCanvas.getWrappedCanvasWidth(seqPanel.seqCanvas.getSize().width);\r
-        if( start<av.getStartRes() || start>(av.getStartRes()+cwidth) )\r
+        else\r
         {\r
-\r
-          vscroll.setValue(start / cwidth);\r
-          av.startRes = vscroll.getValue() * cwidth;\r
+          int cwidth = seqPanel.seqCanvas.getWrappedCanvasWidth(seqPanel.\r
+              seqCanvas.getSize().width);\r
+          if (start < av.getStartRes() || start > (av.getStartRes() + cwidth))\r
+          {\r
+            vscroll.setValue(start / cwidth);\r
+            av.startRes = vscroll.getValue() * cwidth;\r
+          }\r
         }\r
-      }\r
     }\r
 \r
     repaint();\r