private int currentPosition = 0;
- private boolean endsAtHidden = true;
+ private boolean endsAtHidden = false;
VisibleBlocksVisBoundsIterator(int start, int end, boolean usecopy)
{
int hiddenSoFar = 0;
int visSoFar = 0;
int maxVisible = end - start;
+ endsAtHidden = false;
// iterate until a region begins within (start,end]
int i = 0;
visSoFar += blockEnd - blockStart + 1;
blockStart = region[1] + 1;
- blockEnd = end + hiddenSoFar;
+
hiddenSoFar += region[1] - region[0] + 1;
+ blockEnd = end + hiddenSoFar;
i++;
}
if (visSoFar < maxVisible)
{
blockEnd = blockStart + maxVisible - visSoFar;
- int[] contig = new int[] { blockStart,
- blockEnd };
+ int[] contig = new int[] { blockStart, blockEnd };
vcontigs.add(contig);
- endsAtHidden = false;
+ if (i < hiddenColumns.size()
+ && hiddenColumns.get(i)[0] - 1 == blockEnd)
+ {
+ endsAtHidden = true;
+ }
}
}
else
{
+ // there are no hidden columns, return a single visible contig
int[] contig = new int[] { start, end };
vcontigs.add(contig);
endsAtHidden = false;