Search in sources :

Example 16 with Person

use of com.vaadin.flow.data.bean.Person in project flow-components by vaadin.

the class SortingPage method createInitiallyHiddenGrid.

private void createInitiallyHiddenGrid() {
    Grid<Person> grid = createGrid("hidden-grid", "sort-hidden-by-age");
    grid.setMaxHeight("0px");
    grid.getStyle().set("display", "none");
    NativeButton showGridBtn = new NativeButton("Show grid", e -> {
        grid.getStyle().set("display", "block");
        grid.getStyle().remove("max-height");
    });
    showGridBtn.setId("show-hidden-grid");
    add(grid, showGridBtn);
}
Also used : NativeButton(com.vaadin.flow.component.html.NativeButton) Person(com.vaadin.flow.data.bean.Person)

Example 17 with Person

use of com.vaadin.flow.data.bean.Person in project flow-components by vaadin.

the class AbstractBeansMemoryTest method createPerson.

protected Person createPerson(int index) {
    random.setSeed(index);
    Person person = new Person();
    person.setFirstName("First Name " + random.nextInt());
    person.setLastName("Last Name " + random.nextInt());
    person.setAge(random.nextInt());
    person.setBirthDate(new Date(random.nextLong()));
    person.setDeceased(random.nextBoolean());
    person.setEmail(random.nextInt() + "user@example.com");
    person.setRent(new BigDecimal(random.nextLong()));
    person.setSalary(random.nextInt());
    person.setSalaryDouble(random.nextDouble());
    person.setGender(Gender.values()[random.nextInt(Gender.values().length)]);
    Address address = new Address();
    person.setAddress(address);
    address.setCity("city " + random.nextInt());
    address.setPostalCode(random.nextInt());
    address.setStreet("street address " + random.nextInt());
    address.setCountry(Country.values()[random.nextInt(Country.values().length)]);
    return person;
}
Also used : Address(com.vaadin.flow.data.bean.Address) Person(com.vaadin.flow.data.bean.Person) Date(java.util.Date) BigDecimal(java.math.BigDecimal)

Example 18 with Person

use of com.vaadin.flow.data.bean.Person in project flow-components by vaadin.

the class ContextMenuGridPage method gridWithContextMenu.

private void gridWithContextMenu() {
    final Grid<Person> grid = new Grid<>();
    grid.addColumn(Person::getFirstName).setHeader("Name").setId("Name-Id");
    grid.addColumn(Person::getAge).setHeader("Born").setId("Born-Id");
    grid.setItems(IntStream.range(0, 77).mapToObj(i -> new Person("Person " + i, 1900 + i)));
    GridContextMenu<Person> contextMenu = grid.addContextMenu();
    addItems(contextMenu);
    contextMenu.addComponentAtIndex(1, new Hr());
    contextMenu.addGridContextMenuOpenedListener(event -> {
        String name = event.getItem().map(Person::getFirstName).orElse(NO_TARGET_ITEM);
        String columnId = event.getColumnId().orElse("No column");
        message.setText("pre-open: name=" + name + ", colId=" + columnId);
    });
    NativeButton toggleOpenOnClick = new NativeButton("Toggle open on click", e -> contextMenu.setOpenOnClick(!contextMenu.isOpenOnClick()));
    toggleOpenOnClick.setId("toggle-open-on-click");
    NativeButton addSubMenu = new NativeButton("Add sub-menu", e -> {
        GridMenuItem<Person> parent = contextMenu.addItem("parent");
        GridSubMenu<Person> subMenu = parent.getSubMenu();
        addItems(subMenu);
        subMenu.addComponentAtIndex(1, new H1("bar"));
    });
    addSubMenu.setId("add-sub-menu");
    NativeButton removeContextMenu = new NativeButton("Remove context menu", event -> contextMenu.setTarget(null));
    removeContextMenu.setId("remove-context-menu");
    add(grid, toggleOpenOnClick, addSubMenu, removeContextMenu);
    grid.setId("grid-with-context-menu");
}
Also used : IntStream(java.util.stream.IntStream) Person(com.vaadin.flow.data.bean.Person) Grid(com.vaadin.flow.component.grid.Grid) Anchor(com.vaadin.flow.component.html.Anchor) GridInATemplate(com.vaadin.flow.component.grid.it.GridInATemplate) H1(com.vaadin.flow.component.html.H1) Div(com.vaadin.flow.component.html.Div) Label(com.vaadin.flow.component.html.Label) NativeButton(com.vaadin.flow.component.html.NativeButton) Hr(com.vaadin.flow.component.html.Hr) Route(com.vaadin.flow.router.Route) NativeButton(com.vaadin.flow.component.html.NativeButton) Grid(com.vaadin.flow.component.grid.Grid) H1(com.vaadin.flow.component.html.H1) Hr(com.vaadin.flow.component.html.Hr) Person(com.vaadin.flow.data.bean.Person)

Example 19 with Person

use of com.vaadin.flow.data.bean.Person in project flow-components by vaadin.

the class SortingPage method createGrid.

private Grid<Person> createGrid(String gridId, String sortBtnId) {
    Grid<Person> grid = new Grid<>();
    grid.setMultiSort(true);
    grid.setId(gridId);
    grid.setItems(new Person("B", 20), new Person("A", 30));
    Column<Person> nameColumn = grid.addColumn(Person::getFirstName).setHeader(new Span("Name"));
    Column<Person> ageColumn = grid.addColumn(Person::getAge).setHeader("Age");
    // Needed to check that sorter is rendered in component header after
    // adding new header row
    grid.appendHeaderRow();
    List<GridSortOrder<Person>> sortByName = new GridSortOrderBuilder<Person>().thenAsc(nameColumn).build();
    grid.sort(sortByName);
    NativeButton button = new NativeButton(sortBtnId.equals("sort-hidden-by-age") ? "Sort hidden by age" : "Sort by age", e -> {
        List<GridSortOrder<Person>> sortByAge = new GridSortOrderBuilder<Person>().thenAsc(ageColumn).build();
        grid.sort(sortByAge);
    });
    button.setId(sortBtnId);
    NativeButton reOrder = new NativeButton("Re-order", e -> {
        grid.setColumnOrder(ageColumn, nameColumn);
    });
    reOrder.setId("reorder-button");
    NativeButton changeHeaderText = new NativeButton("Change header text", e -> {
        ageColumn.setHeader("Age (updated)");
    });
    changeHeaderText.setId("change-header-text");
    NativeButton changeHeaderTextComponent = new NativeButton("Change header text component", e -> {
        ageColumn.setHeader(new Span("Age (updated)"));
    });
    changeHeaderTextComponent.setId("change-header-text-component");
    NativeButton clearButton = new NativeButton("Clear items", e -> grid.setItems(new ArrayList<Person>()));
    clearButton.setId("clear-items");
    add(button, reOrder, changeHeaderText, changeHeaderTextComponent, clearButton);
    return grid;
}
Also used : NativeButton(com.vaadin.flow.component.html.NativeButton) GridSortOrder(com.vaadin.flow.component.grid.GridSortOrder) Grid(com.vaadin.flow.component.grid.Grid) ArrayList(java.util.ArrayList) Person(com.vaadin.flow.data.bean.Person) Span(com.vaadin.flow.component.html.Span) GridSortOrderBuilder(com.vaadin.flow.component.grid.GridSortOrderBuilder)

Example 20 with Person

use of com.vaadin.flow.data.bean.Person in project flow-components by vaadin.

the class GridViewClickListenersPage method createDoubleClickListener.

private void createDoubleClickListener() {
    Div message = new Div();
    message.setId("doubleclicked-item");
    Grid<Person> grid = new Grid<>();
    grid.setItems(getItems());
    grid.addColumn(Person::getFirstName).setHeader("Name");
    grid.addColumn(Person::getAge).setHeader("Age");
    grid.addItemDoubleClickListener(event -> message.setText("Double Clicked Item: " + event.getItem().getFirstName()));
    grid.setId("item-doubleclick-listener");
    message.addClickListener(event -> message.setText(""));
    addCard("Click Listeners", "Item Double Click Listener", message, grid);
}
Also used : Div(com.vaadin.flow.component.html.Div) Grid(com.vaadin.flow.component.grid.Grid) Person(com.vaadin.flow.data.bean.Person)

Aggregations

Person (com.vaadin.flow.data.bean.Person)28 Grid (com.vaadin.flow.component.grid.Grid)21 Div (com.vaadin.flow.component.html.Div)13 NativeButton (com.vaadin.flow.component.html.NativeButton)12 Route (com.vaadin.flow.router.Route)12 List (java.util.List)8 Column (com.vaadin.flow.component.grid.Grid.Column)7 ArrayList (java.util.ArrayList)7 TextField (com.vaadin.flow.component.textfield.TextField)6 Checkbox (com.vaadin.flow.component.checkbox.Checkbox)5 Button (com.vaadin.flow.component.button.Button)4 SelectionMode (com.vaadin.flow.component.grid.Grid.SelectionMode)4 Editor (com.vaadin.flow.component.grid.editor.Editor)4 Span (com.vaadin.flow.component.html.Span)4 Binder (com.vaadin.flow.data.binder.Binder)4 EmailValidator (com.vaadin.flow.data.validator.EmailValidator)4 Collection (java.util.Collection)4 Collections (java.util.Collections)4 WeakHashMap (java.util.WeakHashMap)4 HeaderRow (com.vaadin.flow.component.grid.HeaderRow)3