123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package com.vaadin.tests.components.grid;
-
- import java.util.ArrayList;
- import java.util.EnumSet;
- import java.util.List;
-
- import com.vaadin.data.provider.DataProvider;
- import com.vaadin.server.SerializablePredicate;
- import com.vaadin.server.VaadinRequest;
- import com.vaadin.tests.components.AbstractTestUI;
- import com.vaadin.tests.data.bean.Person;
- import com.vaadin.ui.Button;
- import com.vaadin.ui.Grid;
- import com.vaadin.ui.Grid.SelectionMode;
- import com.vaadin.ui.NativeSelect;
- import com.vaadin.ui.VerticalLayout;
-
- public class GridColumnWidthsWithoutData extends AbstractTestUI {
-
- private SelectionMode selectionMode = SelectionMode.NONE;
- private List<Person> items;
- private DataProvider<Person, SerializablePredicate<Person>> provider;
- private Grid<Person> grid = createGrid(true);
-
- @Override
- protected void setup(VaadinRequest request) {
- addComponent(grid);
-
- NativeSelect<SelectionMode> selectionModeSelector = new NativeSelect<>(
- "Selection mode", EnumSet.allOf(SelectionMode.class));
- selectionModeSelector.setValue(selectionMode);
- selectionModeSelector.addValueChangeListener(event -> {
- selectionMode = selectionModeSelector.getValue();
- grid.setSelectionMode(selectionMode);
- });
-
- addComponent(selectionModeSelector);
-
- addComponent(new Button("Recreate without data",
- event -> replaceGrid(createGrid(false))));
-
- addComponent(new Button("Recreate with data",
- event -> replaceGrid(createGrid(true))));
-
- addComponent(new Button("Add data", event -> addDataToGrid()));
-
- addComponent(new Button("Remove data", event -> {
- items.clear();
- provider.refreshAll();
- }));
- }
-
- private void replaceGrid(Grid<Person> newGrid) {
- ((VerticalLayout) grid.getParent()).replaceComponent(grid, newGrid);
- grid = newGrid;
- }
-
- private Grid<Person> createGrid(boolean withData) {
- Grid<Person> grid = new Grid<>();
- grid.addColumn(Person::getFirstName);
- grid.addColumn(Person::getLastName);
- grid.setWidth("300px");
- grid.setSelectionMode(selectionMode);
-
- items = new ArrayList<>();
- provider = DataProvider.ofCollection(items);
- grid.setDataProvider(provider);
-
- if (withData) {
- addDataToGrid();
- }
-
- return grid;
- }
-
- private void addDataToGrid() {
- Person person = new Person();
- person.setFirstName("Some");
- person.setLastName("Data with more data in one col");
- items.add(person);
- provider.refreshAll();
- }
-
- }
|