JAL-2439 Out-by-one in setting endRes/endSeq
[jalview.git] / src / jalview / viewmodel / ViewportPositionProps.java
index 69a60f5..61dd18c 100644 (file)
@@ -24,7 +24,7 @@ import jalview.datamodel.AlignmentI;
 
 /**
  * Supplies and updates viewport properties relating to position such as: start
- * and end residues and sequences, hidden column/row adjustments, etc
+ * and end residues and sequences
  */
 public class ViewportPositionProps extends ViewportProperties
 {
@@ -45,7 +45,9 @@ public class ViewportPositionProps extends ViewportProperties
 
   /**
    * Constructor
-   * @param alignment TODO
+   * 
+   * @param alignment
+   *          the viewport's alignment
    */
   public ViewportPositionProps(AlignmentI alignment)
   {
@@ -79,6 +81,12 @@ public class ViewportPositionProps extends ViewportProperties
     return al.getHeight() + al.getHiddenSequences().getSize();
   }
 
+  /**
+   * Set first residue visible in the viewport
+   * 
+   * @param res
+   *          residue position
+   */
   public void setStartRes(int res)
   {
     if (res > al.getWidth() - 1)
@@ -92,11 +100,17 @@ public class ViewportPositionProps extends ViewportProperties
     this.startRes = res;
   }
 
+  /**
+   * Set last residue visible in the viewport
+   * 
+   * @param res
+   *          residue position
+   */
   public void setEndRes(int res)
   {
-    if (res > al.getWidth())
+    if (res >= al.getWidth())
     {
-      res = al.getWidth();
+      res = al.getWidth() - 1;
     }
     else if (res < 1)
     {
@@ -105,6 +119,12 @@ public class ViewportPositionProps extends ViewportProperties
     this.endRes = res;
   }
 
+  /**
+   * Set the first sequence visible in the viewport
+   * 
+   * @param seq
+   *          sequence position
+   */
   public void setStartSeq(int seq)
   {
     if (seq > al.getHeight() - 1)
@@ -118,11 +138,17 @@ public class ViewportPositionProps extends ViewportProperties
     this.startSeq = seq;
   }
 
+  /**
+   * Set the last sequence visible in the viewport
+   * 
+   * @param seq
+   *          sequence position
+   */
   public void setEndSeq(int seq)
   {
-    if (seq > al.getHeight())
+    if (seq >= al.getHeight())
     {
-      seq = al.getHeight();
+      seq = al.getHeight() - 1;
     }
     else if (seq < 1)
     {