Skip to content

Grid and TreeGrid: Empty item lines after 10 x pageSize items. #3708

@enver-haase

Description

@enver-haase

Description

When I want to see all 600 root items in my demo application, I see only 20 because I set the page size to be 2.

Expected outcome

I expect the page size to be only performance-related.

Minimal reproducible example

package com.vaadin.qa.views.helloworld;


import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.component.treegrid.TreeGrid;
import com.vaadin.flow.function.ValueProvider;
import com.vaadin.flow.router.PageTitle;
import com.vaadin.flow.router.Route;
import com.vaadin.flow.router.RouteAlias;
import org.apache.commons.lang3.RandomStringUtils;

import java.util.ArrayList;
import java.util.Random;

@PageTitle("Hello World")
@Route(value = "hello")
@RouteAlias(value = "")
public class HelloWorldView extends VerticalLayout {

    private class EnverNode {
        private final String eins;
        private final String zwei;

        public EnverNode(){
            eins = RandomStringUtils.randomAlphabetic(15);
            zwei = RandomStringUtils.randomAlphabetic(15);
        }

        public String getEins(){
            return eins;
        }

        public String getZwei(){
            return zwei;
        }
    }

    public HelloWorldView() {
        Random random = new Random();

        setSizeFull();;

        TreeGrid<EnverNode> treeGrid = new TreeGrid<>();
        treeGrid.setWidthFull();
        treeGrid.setAllRowsVisible(true);

        treeGrid.setPageSize(2); // TODO BROKEN: You will only see N * 10 items, followed by blank lines.

        ArrayList<EnverNode> enverNodes = new ArrayList<>();
        for (int i=0; i < 600; i++){
            enverNodes.add(new EnverNode());
        }
        treeGrid.getTreeData().addRootItems(enverNodes);

        for (int i=0; i<12000; i++){
            treeGrid.getTreeData().addItem(enverNodes.get(random.nextInt(enverNodes.size())), new EnverNode());
        }

        ValueProvider<EnverNode, String> textProvider = (EnverNode::getEins);
        treeGrid.addHierarchyColumn(textProvider);

        add(treeGrid);
    }

}

Steps to reproduce

Use Vaadin 23.2 standard demo application, use this view above as the 'hello' view.
mvn spring-boot:run

Environment

Vaadin version(s): 23.2
OS: OSX
Tested: Firefox / Chrome latest

Browsers

Chrome, Firefox, Issue is not browser related

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions