Skip to content

BaseRenderer#drawRow does not consider column offset #208

@GuidoReith

Description

@GuidoReith

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;
	}

In BaseRenderer#drawRow:135
TableData td = drawColumn(row, context, data, column, colIndex, isHeaderVisible(colIndex));

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions