JAL-192 fix bounds when no hidden regions, and when sequence contained in hidden...
[jalview.git] / src / jalview / datamodel / ColumnSelection.java
index 7d70c36..624e083 100644 (file)
@@ -1091,11 +1091,11 @@ public class ColumnSelection
   {
     int fpos=seq.getStart(),lpos= seq.getEnd();
     int start = 0;
-    int end = seq.getLength();
     
     if (hiddenColumns == null || hiddenColumns.size() == 0)
     {
-      return new int[] { seq.findIndex(fpos), seq.findIndex(lpos), fpos,
+      return new int[] { seq.findIndex(fpos) - 1, seq.findIndex(lpos) - 1,
+          fpos,
           lpos };
     }
 
@@ -1104,7 +1104,7 @@ public class ColumnSelection
     List<int[]> regions = getHiddenColumns();
     int spos = fpos, lastvispos = -1, rcount = 0, hideStart = seq
             .getLength(), hideEnd = -1;
-    int visPrev = 0, visNext = 0, base = 0;
+    int visPrev = 0, visNext = 0;
     boolean foundStart = false;
     for (int p = 0, pLen = seq.getLength(); spos <= seq.getEnd()
             && p < pLen; p++)
@@ -1115,8 +1115,8 @@ public class ColumnSelection
         while (hideEnd < p && rcount < regions.size())
         {
           int[] region = regions.get(rcount++);
-          visNext += region[1] + 1 - region[0];
-          visPrev = visNext-1;
+          visPrev = visNext;
+          visNext += region[0] - visPrev;
           hideStart = region[0];
           hideEnd = region[1];
         }
@@ -1520,6 +1520,8 @@ public class ColumnSelection
   public boolean filterAnnotations(Annotation[] annotations,
           AnnotationFilterParameter filterParams)
   {
+    // JBPNote - this method needs to be refactored to become independent of
+    // viewmodel package
     this.revealAllHiddenColumns();
     this.clear();
     int count = 0;