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);
}
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;
}
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");
}
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;
}
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);
}
Aggregations