Vaadin grid becomes empty, when using CheckboxRenderer

48 Views Asked by At

Vaadin version is 8.10.1

Adding the addon:

    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>grid-renderers-collection-addon</artifactId>
        <version>2.7.0</version>
    </dependency>

and in the grid defining the renderer like that:

    CheckboxRenderer renderer = new CheckboxRenderer<>(Payment::setSelectedToMultiAction);
    paymentGrid.addColumn(Payment::getSelectedToMultiAction)
            .setRenderer(renderer)
            .setCaption("Selection");

But the grid shown empty. With no error in Chrome's js console:

enter image description here

If we remove the renderere, everything is displayed.

    CheckboxRenderer renderer = new CheckboxRenderer<>(Payment::setSelectedToMultiAction);
    paymentGrid.addColumn(Payment::getSelectedToMultiAction)
    //        .setRenderer(renderer)
            .setCaption("Selection");

The widget is handled during the vaadin-maven-plugin run:

<plugin>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-maven-plugin</artifactId>
                <version>${vaadin.version}</version>
                <configuration>
                    <webappDirectory>${basedir}/resources/VAADIN/widgetsets</webappDirectory>
                    <hostedWebapp>${basedir}/resources/VAADIN/widgetsets</hostedWebapp>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <!--<goal>clean</goal>
                            <goal>resources</goal>-->
                            <goal>update-theme</goal>
                            <goal>update-widgetset</goal>
                            <goal>compile-theme</goal>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
1

There are 1 best solutions below

0
Eljah On BEST ANSWER

I succeed with using ComponentRenderer from Vaadin 8.1, not the CheckboxRenderer from grid-renderers-collection-addon

   paymentGrid.addComponentColumn(payment -> {
        CheckBox multiselected = new CheckBox();
        multiselected.addValueChangeListener(event -> {
            payment.setSelectedToMultiAction(event.getValue());
            if (event.getValue()) {
                selectedPayments.add(payment);
            } else {
                selectedPayments.remove(payment);
            }
            showButtons();
        });
        return multiselected;
    });