package com.vaadin.tests.components.grid; import java.util.ArrayList; import java.util.List; import com.vaadin.server.VaadinRequest; import com.vaadin.tests.components.AbstractTestUI; import com.vaadin.ui.CheckBox; import com.vaadin.ui.Grid; import com.vaadin.ui.renderers.HtmlRenderer; public class GridEditorCheckBox extends AbstractTestUI { @Override protected String getTestDescription() { return "Editor content alignments should match regular row content " + "alignments.
(Double-click a row to open the editor.)"; } @Override protected void setup(VaadinRequest request) { List items = new ArrayList<>(); items.add(new Person(true, false, false)); items.add(new Person(false, true, true)); CheckBox adminEditor = new CheckBox(); CheckBox staffEditor = new CheckBox(); staffEditor.setPrimaryStyleName("my-custom-checkbox"); final Grid grid = new Grid(); grid.setSelectionMode(Grid.SelectionMode.MULTI); grid.addColumn(Person::isAdmin) .setEditorComponent(adminEditor, Person::setAdmin) .setCaption("Default"); grid.addColumn(Person::isStaff) .setEditorComponent(staffEditor, Person::setAdmin) .setCaption("Custom"); grid.addColumn(Person::isSpecialist).setRenderer( s -> "", new HtmlRenderer()).setCaption("HTML"); grid.addColumn(Person::isSpecialist).setRenderer( s -> "", new HtmlRenderer()).setCaption("Spanned"); grid.getEditor().setBuffered(false); grid.getEditor().setEnabled(true); grid.setItems(items); addComponents(grid); } public class Person { private boolean admin; private boolean staff; private boolean specialist; public Person(boolean admin, boolean staff, boolean specialist) { this.admin = admin; this.staff = staff; this.specialist = specialist; } public boolean isAdmin() { return admin; } public void setAdmin(final boolean admin) { this.admin = admin; } public boolean isStaff() { return staff; } public void setStaff(final boolean staff) { this.staff = staff; } public boolean isSpecialist() { return specialist; } public void setSpecialist(final boolean specialist) { this.specialist = specialist; } } }