Scroll cursor wrapped alignment
authoramwaterhouse <Andrew Waterhouse>
Fri, 7 Apr 2006 11:27:19 +0000 (11:27 +0000)
committeramwaterhouse <Andrew Waterhouse>
Fri, 7 Apr 2006 11:27:19 +0000 (11:27 +0000)
src/jalview/appletgui/AlignmentPanel.java
src/jalview/appletgui/SeqPanel.java
src/jalview/gui/AlignmentPanel.java
src/jalview/gui/SeqPanel.java

index b04946f..cc89098 100755 (executable)
@@ -219,19 +219,25 @@ public class AlignmentPanel extends Panel implements AdjustmentListener
         }\r
         else\r
         {\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
+          scrollToWrappedVisible(start);\r
         }\r
     }\r
 \r
     repaint();\r
   }\r
 \r
+  void scrollToWrappedVisible(int res)\r
+  {\r
+    int cwidth = seqPanel.seqCanvas.getWrappedCanvasWidth(seqPanel.seqCanvas.\r
+        getWidth());\r
+    if (res <= av.getStartRes() || res >= (av.getStartRes() + cwidth))\r
+    {\r
+      vscroll.setValue(res / cwidth);\r
+      av.startRes = vscroll.getValue() * cwidth;\r
+    }\r
+  }\r
+\r
+\r
   public OverviewPanel getOverviewPanel()\r
   {\r
     return overviewPanel;\r
index 55bc65a..987b0b8 100755 (executable)
@@ -140,26 +140,32 @@ public class SeqPanel
 \r
 \r
      endEditing();\r
-     while (seqCanvas.cursorY < av.startSeq)\r
+     if (av.wrapAlignment)\r
      {\r
-       ap.scrollUp(true);\r
+       ap.scrollToWrappedVisible(seqCanvas.cursorX);\r
      }\r
-     while (seqCanvas.cursorY + 1 > av.endSeq)\r
-     {\r
-       ap.scrollUp(false);\r
-     }\r
-     while (seqCanvas.cursorX < av.startRes)\r
+     else\r
      {\r
+       while (seqCanvas.cursorY < av.startSeq)\r
+       {\r
+         ap.scrollUp(true);\r
+       }\r
+       while (seqCanvas.cursorY + 1 > av.endSeq)\r
+       {\r
+         ap.scrollUp(false);\r
+       }\r
+       while (seqCanvas.cursorX < av.startRes)\r
+       {\r
 \r
-       if(!ap.scrollRight(false))\r
-         break;\r
-     }\r
-     while (seqCanvas.cursorX > av.endRes)\r
-     {\r
-       if(!ap.scrollRight(true))\r
-         break;\r
+         if (!ap.scrollRight(false))\r
+           break;\r
+       }\r
+       while (seqCanvas.cursorX > av.endRes)\r
+       {\r
+         if (!ap.scrollRight(true))\r
+           break;\r
+       }\r
      }\r
-\r
      setStatusMessage(av.alignment.getSequenceAt(seqCanvas.cursorY),\r
                       seqCanvas.cursorX, seqCanvas.cursorY);\r
 \r
index 00f27aa..2800f85 100755 (executable)
@@ -371,16 +371,21 @@ public class AlignmentPanel extends GAlignmentPanel
       }\r
       else\r
       {\r
-        int cwidth = seqPanel.seqCanvas.getWrappedCanvasWidth(seqPanel.seqCanvas.getWidth());\r
-        if( start<av.getStartRes() || start>(av.getStartRes()+cwidth) )\r
-        {\r
-          vscroll.setValue(start / cwidth);\r
-          av.startRes = vscroll.getValue() * cwidth;\r
-        }\r
+        scrollToWrappedVisible(start);\r
       }\r
     }\r
   }\r
 \r
+  void scrollToWrappedVisible(int res)\r
+  {\r
+    int cwidth = seqPanel.seqCanvas.getWrappedCanvasWidth(seqPanel.seqCanvas.getWidth());\r
+    if( res<=av.getStartRes() || res>=(av.getStartRes()+cwidth) )\r
+    {\r
+      vscroll.setValue(res / cwidth);\r
+      av.startRes = vscroll.getValue() * cwidth;\r
+    }\r
+  }\r
+\r
   /**\r
    * DOCUMENT ME!\r
    *\r
index 9b2f5f4..933ca04 100755 (executable)
@@ -235,25 +235,34 @@ public class SeqPanel extends JPanel implements MouseListener,
 \r
 \r
       endEditing();\r
-      while (seqCanvas.cursorY < av.startSeq)\r
+      if(av.wrapAlignment)\r
       {\r
-        ap.scrollUp(true);\r
+        ap.scrollToWrappedVisible(seqCanvas.cursorX);\r
       }\r
-      while (seqCanvas.cursorY + 1 > av.endSeq)\r
-      {\r
-        ap.scrollUp(false);\r
-      }\r
-      while (seqCanvas.cursorX < av.startRes)\r
-      {\r
-        if(!ap.scrollRight(false))\r
-          break;\r
-      }\r
-      while (seqCanvas.cursorX > av.endRes)\r
+      else\r
       {\r
-        if(!ap.scrollRight(true))\r
-          break;\r
+        while (seqCanvas.cursorY < av.startSeq)\r
+        {\r
+          ap.scrollUp(true);\r
+        }\r
+        while (seqCanvas.cursorY + 1 > av.endSeq)\r
+        {\r
+          ap.scrollUp(false);\r
+        }\r
+        if (!av.wrapAlignment)\r
+        {\r
+          while (seqCanvas.cursorX < av.startRes)\r
+          {\r
+            if (!ap.scrollRight(false))\r
+              break;\r
+          }\r
+          while (seqCanvas.cursorX > av.endRes)\r
+          {\r
+            if (!ap.scrollRight(true))\r
+              break;\r
+          }\r
+        }\r
       }\r
-\r
       setStatusMessage(av.alignment.getSequenceAt(seqCanvas.cursorY),\r
                        seqCanvas.cursorX, seqCanvas.cursorY);\r
 \r