Having a AbstractDataView (selectionType is not SelectionType.NONE); Turn off some columns and sort the rest gives wrong result:
AbstractDataView#renderRows:337 - setting visible header indexes by method getVisibleHeaderIndexes();
AbstractDataView#getVisibleHeaderIndexes:307 - uses getColumnCount() method;
AbstractDataView#getColumnCount:1275 - returns column count without OFFSET (getColumnOffset());
BaseRenderer#drawRow:135 - drawColumn() method uses as param isHeaderVisible() method with column index without OFFSET (int c);
Fix could be: Change in getVisibleHeaderIndexes():
protected List<Integer> getVisibleHeaderIndexes() {
List<Integer> visibleHeaders = new ArrayList<>();
for (int index = 0; index < getColumnCount() + getColumnOffset(); index++) {
if (isHeaderVisible(index)) {
visibleHeaders.add(index);
}
}
return visibleHeaders;
}
Having a AbstractDataView (selectionType is not SelectionType.NONE); Turn off some columns and sort the rest gives wrong result: AbstractDataView#renderRows:337 - setting visible header indexes by method getVisibleHeaderIndexes(); AbstractDataView#getVisibleHeaderIndexes:307 - uses getColumnCount() method; AbstractDataView#getColumnCount:1275 - returns column count without OFFSET (getColumnOffset()); BaseRenderer#drawRow:135 - drawColumn() method uses as param isHeaderVisible() method with column index without OFFSET (int c);
Fix could be: Change in getVisibleHeaderIndexes():
In BaseRenderer#drawRow:135 TableData td = drawColumn(row, context, data, column, colIndex, isHeaderVisible(colIndex));