1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 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.tests.util.Person;
- import com.vaadin.tests.util.PersonContainer;
- import com.vaadin.ui.Button;
- import com.vaadin.ui.CheckBox;
- import com.vaadin.ui.Grid;
- import com.vaadin.ui.Label;
- import com.vaadin.ui.TextField;
-
- public class GridDetailsLocation extends AbstractTestUI {
-
- private TextField numberTextField;
- private Grid<Person> grid;
- private List<Person> testData;
-
- @Override
- protected void setup(VaadinRequest request) {
-
- grid = new Grid<>();
- testData = new ArrayList<>(PersonContainer.createTestData(1000));
- grid.setItems(testData);
- grid.addColumn(item -> item.getFirstName()).setCaption("First Name");
- grid.addColumn(item -> item.getLastName()).setCaption("Last Name");
-
- grid.setSelectionMode(Grid.SelectionMode.NONE);
- addComponent(grid);
-
- final CheckBox checkbox = new CheckBox("Details generator");
- checkbox.addValueChangeListener(event -> {
- if (checkbox.getValue()) {
- grid.setDetailsGenerator(person -> {
- Label label = new Label(
- person.getFirstName() + " " + person.getLastName());
- // currently the decorator row doesn't change its height
- // when the content height is different.
- label.setHeight("30px");
- return label;
- });
- } else {
- grid.setDetailsGenerator(null);
- }
- });
- addComponent(checkbox);
-
- numberTextField = new TextField("Row");
- addComponent(numberTextField);
-
- addComponent(new Button("Toggle and scroll", clickEvent -> {
- toggle();
- scrollTo();
- }));
- addComponent(new Button("Scroll and toggle", clickEvent -> {
- scrollTo();
- toggle();
- }));
- }
-
- private void toggle() {
- Person itemId = testData
- .get(Integer.parseInt(numberTextField.getValue()));
- boolean isVisible = grid.isDetailsVisible(itemId);
- grid.setDetailsVisible(itemId, !isVisible);
- }
-
- private void scrollTo() {
- grid.scrollTo(Integer.parseInt(numberTextField.getValue()));
- }
- }
|