changeCase
[jalview.git] / src / jalview / appletgui / AlignmentPanel.java
index 0423cbb..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
@@ -296,8 +302,7 @@ public class AlignmentPanel extends Panel implements AdjustmentListener
       {\r
         return false;\r
       }\r
-      fastPaint = false;\r
-      vscroll.setValue(vscroll.getValue() - 1);\r
+      setScrollValues(hscroll.getValue(), vscroll.getValue()-1);\r
     }\r
     else\r
     {\r
@@ -305,24 +310,22 @@ public class AlignmentPanel extends Panel implements AdjustmentListener
       {\r
         return false;\r
       }\r
-      fastPaint = false;\r
-      vscroll.setValue(vscroll.getValue() + 1);\r
+      setScrollValues(hscroll.getValue(), vscroll.getValue()+1);\r
     }\r
-    fastPaint = true;\r
+\r
+    repaint();\r
     return true;\r
   }\r
 \r
   public boolean scrollRight(boolean right)\r
   {\r
-\r
-    if (right)\r
+    if (!right)\r
     {\r
       if (hscroll.getValue() < 1)\r
       {\r
         return false;\r
       }\r
-      fastPaint = false;\r
-      hscroll.setValue(hscroll.getValue() - 1);\r
+      setScrollValues(hscroll.getValue()-1, vscroll.getValue());\r
     }\r
     else\r
     {\r
@@ -330,16 +333,15 @@ public class AlignmentPanel extends Panel implements AdjustmentListener
       {\r
         return false;\r
       }\r
-      fastPaint = false;\r
-      hscroll.setValue(hscroll.getValue() + 1);\r
+      setScrollValues(hscroll.getValue()+1, vscroll.getValue());\r
     }\r
-    fastPaint = true;\r
+\r
+    repaint();\r
     return true;\r
   }\r
 \r
   public void setScrollValues(int x, int y)\r
   {\r
-\r
     av.setStartRes(x);\r
     av.setStartSeq(y);\r
     av.setEndRes(x + seqPanel.seqCanvas.getSize().width / av.getCharWidth() - 1);\r
@@ -386,6 +388,8 @@ public class AlignmentPanel extends Panel implements AdjustmentListener
     hscroll.setValues(x, hextent, 0, av.getAlignment().getWidth());\r
     vscroll.setValues(y, vextent, 0, av.getAlignment().getHeight());\r
 \r
+    if(overviewPanel!=null)\r
+          overviewPanel.setBoxPosition();\r
   }\r
 \r
   public void adjustmentValueChanged(AdjustmentEvent evt)\r
@@ -393,6 +397,7 @@ public class AlignmentPanel extends Panel implements AdjustmentListener
     int oldX = av.getStartRes();\r
     int oldY = av.getStartSeq();\r
 \r
+\r
     if (evt==null || evt.getSource() == hscroll)\r
     {\r
       int x = hscroll.getValue();\r
@@ -401,6 +406,7 @@ public class AlignmentPanel extends Panel implements AdjustmentListener
                    1);\r
     }\r
 \r
+\r
     if (evt==null || evt.getSource() == vscroll)\r
     {\r
       int offy = vscroll.getValue();\r
@@ -431,12 +437,14 @@ public class AlignmentPanel extends Panel implements AdjustmentListener
     {\r
       repaint();\r
     }\r
-    else if(!seqPanel.seqCanvas.fastPaint)\r
+    else\r
     {\r
       // Make sure we're not trying to draw a panel\r
       // larger than the visible window\r
       if(scrollX>av.endRes-av.startRes)\r
-        scrollX = av.endRes-av.startRes;\r
+      {\r
+        scrollX = av.endRes - av.startRes;\r
+      }\r
       else if(scrollX<av.startRes-av.endRes)\r
         scrollX = av.startRes - av.endRes;\r
 \r
@@ -460,6 +468,7 @@ public class AlignmentPanel extends Panel implements AdjustmentListener
 \r
   public void paint(Graphics g)\r
   {\r
+    invalidate();\r
     Dimension d = idPanel.idCanvas.getSize();\r
     idPanel.idCanvas.setSize(d.width, seqPanel.seqCanvas.getSize().height);\r
     annotationSpaceFillerHolder.setSize(d.width,\r