JAL-3438 spotless for 2.11.2.0
[jalview.git] / src / jalview / viewmodel / ViewportRanges.java
index c7a3fa1..104fb62 100644 (file)
@@ -97,7 +97,7 @@ public class ViewportRanges extends ViewportProperties
    */
   public int getVisibleAlignmentWidth()
   {
-    return al.getWidth() - al.getHiddenColumns().getSize();
+    return al.getVisibleWidth();
   }
 
   /**
@@ -224,6 +224,7 @@ public class ViewportRanges extends ViewportProperties
    */
   public void setStartEndSeq(int start, int end)
   {
+    // System.out.println("ViewportRange setStartEndSeq " + start + " " + end);
     int[] oldvalues = updateStartEndSeq(start, end);
     int oldstartseq = oldvalues[0];
     int oldendseq = oldvalues[1];
@@ -285,12 +286,12 @@ public class ViewportRanges extends ViewportProperties
    * event.
    * 
    * @param seq
-   *          sequence position
+   *          sequence position in the range [0, height)
    */
   public void setEndSeq(int seq)
   {
-    int height = getViewportHeight();
-    setStartEndSeq(seq - height + 1, seq);
+    // BH 2018.04.18 added safety for seq < 0; comment about not being >= height
+    setStartEndSeq(Math.max(0, seq + 1 - getViewportHeight()), seq);
   }
 
   /**
@@ -425,17 +426,21 @@ public class ViewportRanges extends ViewportProperties
   public void setViewportStartAndHeight(int start, int h)
   {
     int vpstart = start;
+
+    int visHeight = getVisibleAlignmentHeight();
     if (vpstart < 0)
     {
       vpstart = 0;
     }
-    else if ((h <= getVisibleAlignmentHeight())
-            && (vpstart + h - 1 > getVisibleAlignmentHeight() - 1))
+    else if (h <= visHeight && vpstart + h > visHeight)
     // viewport height is less than the full alignment and we are running off
     // the bottom
     {
-      vpstart = getVisibleAlignmentHeight() - h;
+      vpstart = visHeight - h;
     }
+    // System.out.println("ViewportRanges setviewportStartAndHeight " + vpstart
+    // + " " + start + " " + h + " " + getVisibleAlignmentHeight());
+
     setStartEndSeq(vpstart, vpstart + h - 1);
   }
 
@@ -580,8 +585,8 @@ public class ViewportRanges extends ViewportProperties
     }
 
     int residuesToScroll = width * widthsToScroll;
-    int newStartRes = up ? oldStartRes - residuesToScroll : oldStartRes
-            + residuesToScroll;
+    int newStartRes = up ? oldStartRes - residuesToScroll
+            : oldStartRes + residuesToScroll;
     if (newStartRes < 0)
     {
       newStartRes = 0;
@@ -607,16 +612,16 @@ public class ViewportRanges extends ViewportProperties
     {
       scrollUp(false);
     }
-    
+
     HiddenColumns hidden = al.getHiddenColumns();
-    while (x < hidden.adjustForHiddenColumns(startRes))
+    while (x < hidden.visibleToAbsoluteColumn(startRes))
     {
       if (!scrollRight(false))
       {
         break;
       }
     }
-    while (x > hidden.adjustForHiddenColumns(endRes))
+    while (x > hidden.visibleToAbsoluteColumn(endRes))
     {
       if (!scrollRight(true))
       {
@@ -638,7 +643,7 @@ public class ViewportRanges extends ViewportProperties
     boolean changedLocation = false;
 
     // convert the x,y location to visible coordinates
-    int visX = al.getHiddenColumns().findColumnPosition(x);
+    int visX = al.getHiddenColumns().absoluteToVisibleColumn(x);
     int visY = al.getHiddenSequences().findIndexWithoutHiddenSeqs(y);
 
     // if (vis_x,vis_y) is already visible don't do anything