JAL-2491 Missed port to applet from JAL-1691
[jalview.git] / src / jalview / appletgui / AlignmentPanel.java
index 4ecf05f..e402b9b 100644 (file)
@@ -407,7 +407,8 @@ public class AlignmentPanel extends Panel implements AdjustmentListener,
       {
         int offset = (vpRanges.getEndRes() - vpRanges.getStartRes() + 1) / 2 - 1;
         start = Math.max(start - offset, 0);
-        end = Math.min(end + offset, seq.getEnd() - 1);
+        end = end + offset - 1;
+        // end = Math.min(end + offset, seq.getEnd() - 1);
       }
 
       if (start < 0)
@@ -436,11 +437,12 @@ public class AlignmentPanel extends Panel implements AdjustmentListener,
     int start = -1;
     if (av.hasHiddenColumns())
     {
-      start = av.getColumnSelection().findColumnPosition(ostart);
-      end = av.getColumnSelection().findColumnPosition(end);
+      AlignmentI al = av.getAlignment();
+      start = al.getHiddenColumns().findColumnPosition(ostart);
+      end = al.getHiddenColumns().findColumnPosition(end);
       if (start == end)
       {
-        if (!scrollToNearest && !av.getColumnSelection().isVisible(ostart))
+        if (!scrollToNearest && !al.getHiddenColumns().isVisible(ostart))
         {
           // don't scroll - position isn't visible
           return false;
@@ -673,21 +675,24 @@ public class AlignmentPanel extends Panel implements AdjustmentListener,
 
   int vextent = 0;
 
-  public void setScrollValues(int x, int y)
+  public void setScrollValues(int xpos, int ypos)
   {
+    int x = xpos;
+    int y = ypos;
+
     if (av.getWrapAlignment())
     {
       setScrollingForWrappedPanel(x);
     }
     else
     {
-
       int width = av.getAlignment().getWidth();
       int height = av.getAlignment().getHeight();
 
       if (av.hasHiddenColumns())
       {
-        width = av.getColumnSelection().findColumnPosition(width);
+        width = av.getAlignment().getHiddenColumns()
+                .findColumnPosition(width);
       }
       if (x < 0)
       {
@@ -742,9 +747,20 @@ public class AlignmentPanel extends Panel implements AdjustmentListener,
     }
   }
 
+  /**
+   * Respond to adjustment event when horizontal or vertical scrollbar is
+   * changed
+   * 
+   * @param evt
+   *          adjustment event encoding whether apvscroll, hscroll or vscroll
+   *          changed
+   */
   @Override
   public void adjustmentValueChanged(AdjustmentEvent evt)
   {
+    // Note that this event is NOT fired by the AWT scrollbar when setValues is
+    // called. Instead manually call adjustHorizontal and adjustVertical
+    // directly.
     if (evt == null || evt.getSource() == apvscroll)
     {
       annotationPanel.setScrollOffset(apvscroll.getValue(), false);
@@ -779,7 +795,7 @@ public class AlignmentPanel extends Panel implements AdjustmentListener,
     }
     vpRanges.setViewportStartAndWidth(x, width);
 
-    if (av.getWrapAlignment() || !fastPaint || av.MAC)
+    if (av.getWrapAlignment() || !fastPaint)
     {
       repaint();
     }
@@ -823,7 +839,7 @@ public class AlignmentPanel extends Panel implements AdjustmentListener,
       }
       vpRanges.setViewportStartAndHeight(offy, height);
     }
-    if (av.getWrapAlignment() || !fastPaint || av.MAC)
+    if (av.getWrapAlignment() || !fastPaint)
     {
       repaint();
     }
@@ -896,8 +912,6 @@ public class AlignmentPanel extends Panel implements AdjustmentListener,
      * Scroll to position but centring the target residue. Also set a state flag
      * to prevent adjustmentValueChanged performing this recursively.
      */
-    // setFollowingComplementScroll(true);
-    // this should be scrollToPosition(sr,verticalOffset,
     scrollToPosition(sr, seqOffset, true, true);
   }
 
@@ -979,7 +993,8 @@ public class AlignmentPanel extends Panel implements AdjustmentListener,
     int maxwidth = av.getAlignment().getWidth();
     if (av.hasHiddenColumns())
     {
-      maxwidth = av.getColumnSelection().findColumnPosition(maxwidth) - 1;
+      maxwidth = av.getAlignment().getHiddenColumns()
+              .findColumnPosition(maxwidth) - 1;
     }
 
     // get the width of the canvas in residues
@@ -1022,9 +1037,9 @@ public class AlignmentPanel extends Panel implements AdjustmentListener,
 
   /*
    * Flag set while scrolling to follow complementary cDNA/protein scroll. When
-   * true, suppresses invoking the same method recursively.
+   * false, suppresses invoking the same method recursively.
    */
-  private boolean followingComplementScroll = true;
+  private boolean scrollComplementaryPanel = true;
 
   private void jbInit() throws Exception
   {
@@ -1133,14 +1148,19 @@ public class AlignmentPanel extends Panel implements AdjustmentListener,
    * 
    * @param b
    */
-  protected void setFollowingComplementScroll(boolean b)
+  protected void setToScrollComplementPanel(boolean b)
   {
-    this.followingComplementScroll = b;
+    this.scrollComplementaryPanel = b;
   }
 
-  protected boolean isFollowingComplementScroll()
+  /**
+   * Get whether to scroll complement panel
+   * 
+   * @return true if cDNA/protein complement panels should be scrolled
+   */
+  protected boolean isSetToScrollComplementPanel()
   {
-    return this.followingComplementScroll;
+    return this.scrollComplementaryPanel;
   }
 
   @Override
@@ -1157,11 +1177,11 @@ public class AlignmentPanel extends Panel implements AdjustmentListener,
 
     // now update any complementary alignment (its viewport ranges object
     // is different so does not get automatically updated)
-    if (isFollowingComplementScroll())
+    if (isSetToScrollComplementPanel())
     {
-      setFollowingComplementScroll(false);
+      setToScrollComplementPanel(false);
       av.scrollComplementaryAlignment(getComplementPanel());
-      setFollowingComplementScroll(true);
+      setToScrollComplementPanel(true);
     }
 
   }