}
/**
- * Get the index of the region that column is within (if column is hidden) or
- * which is to the right of column (if column is visible). If no hidden
- * columns are to the right, will return size of hiddenColumns. If hidden
- * columns is empty returns -1.
+ * Get the cursor pointing to the hidden region that column is within (if
+ * column is hidden) or which is to the right of column (if column is
+ * visible). If no hidden columns are to the right, returns a cursor pointing
+ * to an imaginary hidden region beyond the end of the hidden columns
+ * collection (this ensures the count of previous hidden columns is correct).
+ * If hidden columns is empty returns null.
*
* @param column
* absolute position of a column in the alignment
- * @return region index
+ * @return cursor pointing to hidden region containing the column (if hidden)
+ * or to the right of the column (if visible)
*/
protected HiddenCursorPosition findRegionForColumn(int column)
{
}
/**
- * Get the number of hidden columns in regions before column i.e. excludes
- * hidden columns in the region column is in, if any
+ * Get the cursor pointing to the hidden region just after a visible column
*
* @param column
- * index of column in visible alignment
- * @return
+ * index of column in *visible* alignment (therefore by definition
+ * column is visible)
+ * @return cursor pointing to hidden region to the right of the column
*/
- protected HiddenCursorPosition getHiddenOffset(int column)
+ protected HiddenCursorPosition findRegionForVisColumn(int column)
{
if (hiddenColumns == null)
{
{
HiddenColumnsCursor cursor = new HiddenColumnsCursor();
- HiddenCursorPosition pos = cursor.getHiddenOffset(20);
+ HiddenCursorPosition pos = cursor.findRegionForVisColumn(20);
assertNull(pos);
List<int[]> hidden = new ArrayList<>();
hidden.add(new int[] { 104, 125 });
cursor.resetCursor(hidden);
- int offset = cursor.getHiddenOffset(80).getHiddenSoFar();
+ int offset = cursor.findRegionForVisColumn(80).getHiddenSoFar();
assertEquals(46, offset);
- offset = cursor.getHiddenOffset(79).getHiddenSoFar();
+ offset = cursor.findRegionForVisColumn(79).getHiddenSoFar();
assertEquals(24, offset);
- offset = cursor.getHiddenOffset(53).getHiddenSoFar();
+ offset = cursor.findRegionForVisColumn(53).getHiddenSoFar();
assertEquals(24, offset);
- offset = cursor.getHiddenOffset(52).getHiddenSoFar();
+ offset = cursor.findRegionForVisColumn(52).getHiddenSoFar();
assertEquals(0, offset);
- offset = cursor.getHiddenOffset(10).getHiddenSoFar();
+ offset = cursor.findRegionForVisColumn(10).getHiddenSoFar();
assertEquals(0, offset);
- offset = cursor.getHiddenOffset(0).getHiddenSoFar();
+ offset = cursor.findRegionForVisColumn(0).getHiddenSoFar();
assertEquals(0, offset);
}