Scrolling fixed and selection in wrapped mode updated
authoramwaterhouse <Andrew Waterhouse>
Fri, 28 Jul 2006 16:04:16 +0000 (16:04 +0000)
committeramwaterhouse <Andrew Waterhouse>
Fri, 28 Jul 2006 16:04:16 +0000 (16:04 +0000)
src/jalview/appletgui/IdPanel.java
src/jalview/appletgui/SeqPanel.java

index ed86488..eab849b 100755 (executable)
@@ -72,17 +72,7 @@ public class IdPanel
   Tooltip tooltip;\r
   public void mouseMoved(MouseEvent e)\r
   {\r
-    int y = e.getY();\r
-    if (av.getWrapAlignment())\r
-    {\r
-      y -= 2 * av.charHeight;\r
-    }\r
-\r
-    int seq = av.getIndex(y);\r
-    if (seq == -1)\r
-    {\r
-      return;\r
-    }\r
+    int seq = alignPanel.seqPanel.findSeq(e);\r
 \r
     SequenceI sequence = av.getAlignment().getSequenceAt(seq);\r
 \r
@@ -110,17 +100,7 @@ public class IdPanel
   {\r
     mouseDragging = true;\r
 \r
-    int y = e.getY();\r
-    if (av.getWrapAlignment())\r
-    {\r
-      y -= 2 * av.charHeight;\r
-    }\r
-    int seq = av.getIndex(y);\r
-\r
-    if (seq < 0)\r
-    {\r
-      return;\r
-    }\r
+    int seq = Math.max(0, alignPanel.seqPanel.findSeq(e));\r
 \r
     if (seq < lastid)\r
     {\r
@@ -140,15 +120,9 @@ public class IdPanel
     if (e.getClickCount() < 2)\r
         return;\r
 \r
-    int y = e.getY();\r
-\r
-    if (av.getWrapAlignment())\r
-    {\r
-      y -= (2 * av.charHeight);\r
-    }\r
 \r
     //DEFAULT LINK IS FIRST IN THE LINK LIST\r
-    int seq = av.getIndex(y);\r
+    int seq = alignPanel.seqPanel.findSeq(e);\r
     String id = av.getAlignment().getSequenceAt(seq).getName();\r
     if (id.indexOf("|") > -1)\r
         id = id.substring(id.lastIndexOf("|") + 1);\r
@@ -212,11 +186,7 @@ public class IdPanel
       y -= 2 * av.charHeight;\r
     }\r
 \r
-    int seq = av.getIndex(y);\r
-    if (seq == -1)\r
-    {\r
-      return;\r
-    }\r
+    int seq = alignPanel.seqPanel.findSeq(e);\r
 \r
     if ( (e.getModifiers() & InputEvent.BUTTON3_MASK) ==\r
         InputEvent.BUTTON3_MASK)\r
@@ -342,11 +312,12 @@ public class IdPanel
           {\r
             selectSeqs(lastid - 1, seq);\r
           }\r
-          else if (seq > lastid)\r
+          else if (seq > lastid && seq<av.alignment.getHeight())\r
           {\r
             selectSeqs(lastid + 1, seq);\r
           }\r
 \r
+\r
           lastid = seq;\r
         }\r
         else\r
index 748a789..76ad67b 100755 (executable)
@@ -445,11 +445,17 @@ public class SeqPanel
 \r
        y -= hgap;\r
 \r
-     seq = ( (y % cHeight) / av.getCharHeight());\r
+     seq = Math.min( (y % cHeight) / av.getCharHeight(),\r
+                     av.alignment.getHeight() -1);\r
+     if(seq<0)\r
+       seq = 0;\r
    }\r
    else\r
    {\r
-     seq = (y / av.getCharHeight()) + av.getStartSeq();\r
+     seq = Math.min( (y / av.getCharHeight()) + av.getStartSeq(),\r
+                     av.alignment.getHeight() -1);\r
+     if(seq<0)\r
+       seq = 0;\r
    }\r
 \r
    return seq;\r
@@ -1370,12 +1376,12 @@ public class SeqPanel
 \r
           if (mouseDragging && evt.getX() < 0)\r
           {\r
-            running = ap.scrollRight(true);\r
+            running = ap.scrollRight(false);\r
           }\r
 \r
           else if (mouseDragging && evt.getX() >= getSize().width)\r
           {\r
-            running = ap.scrollRight(false);\r
+            running = ap.scrollRight(true);\r
           }\r
         }\r
 \r