com.vaadin.flow.component.grid.Grid.asSingleSelect()

Here are the examples of the java api com.vaadin.flow.component.grid.Grid.asSingleSelect() taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

16 Examples 7

19 Source : ListView.java
with The Unlicense
from vaadin-learning-center

private void addContact() {
    grid.replacedingleSelect().clear();
    editContact(new Contact());
}

19 Source : ListView.java
with The Unlicense
from vaadin-learning-center

private void configureGrid() {
    grid.addClreplacedName("contact-grid");
    grid.setSizeFull();
    grid.removeColumnByKey("company");
    grid.setColumns("firstName", "lastName", "email", "status");
    grid.addColumn(contact -> {
        Company company = contact.getCompany();
        return company == null ? "-" : company.getName();
    }).setHeader("Company");
    grid.getColumns().forEach(col -> col.setAutoWidth(true));
    grid.replacedingleSelect().addValueChangeListener(evt -> editContact(evt.getValue()));
}

19 Source : GridCrud.java
with Apache License 2.0
from alejandro-du

protected void addButtonClicked() {
    T domainObject = crudFormFactory.getNewInstanceSupplier().get();
    showForm(CrudOperation.ADD, domainObject, false, savedMessage, event -> {
        try {
            T addedObject = addOperation.perform(domainObject);
            refreshGrid();
            grid.replacedingleSelect().setValue(addedObject);
        // TODO: grid.scrollTo(addedObject);
        } catch (IllegalArgumentException ignore) {
        } catch (CrudOperationException e1) {
            refreshGrid();
        } catch (Exception e2) {
            refreshGrid();
            throw e2;
        }
    });
}

19 Source : GridCrud.java
with Apache License 2.0
from alejandro-du

protected void showForm(CrudOperation operation, T domainObject, boolean readOnly, String successMessage, ComponentEventListener<ClickEvent<Button>> buttonClickListener) {
    Component form = crudFormFactory.buildNewForm(operation, domainObject, readOnly, cancelClickEvent -> {
        if (clickRowToUpdate) {
            grid.replacedingleSelect().clear();
        } else {
            T selected = grid.replacedingleSelect().getValue();
            crudLayout.hideForm();
            grid.replacedingleSelect().clear();
            grid.replacedingleSelect().setValue(selected);
        }
    }, operationPerformedClickEvent -> {
        buttonClickListener.onComponentEvent(operationPerformedClickEvent);
        if (!clickRowToUpdate) {
            crudLayout.hideForm();
        }
        showNotification(successMessage);
    });
    String caption = crudFormFactory.buildCaption(operation, domainObject);
    crudLayout.showForm(operation, form, caption);
}

19 Source : GridCrud.java
with Apache License 2.0
from alejandro-du

protected void gridSelectionChanged() {
    updateButtons();
    T domainObject = grid.replacedingleSelect().getValue();
    if (domainObject != null) {
        if (clickRowToUpdate) {
            updateButtonClicked();
        } else {
            Component form = crudFormFactory.buildNewForm(CrudOperation.READ, domainObject, true, null, event -> {
                grid.replacedingleSelect().clear();
            });
            String caption = crudFormFactory.buildCaption(CrudOperation.READ, domainObject);
            crudLayout.showForm(CrudOperation.READ, form, caption);
        }
    } else {
        crudLayout.hideForm();
    }
}

19 Source : GridCrud.java
with Apache License 2.0
from alejandro-du

protected void deleteButtonClicked() {
    T domainObject = grid.replacedingleSelect().getValue();
    showForm(CrudOperation.DELETE, domainObject, true, deletedMessage, event -> {
        try {
            deleteOperation.perform(domainObject);
            refreshGrid();
            grid.replacedingleSelect().clear();
        } catch (CrudOperationException e1) {
            refreshGrid();
        } catch (Exception e2) {
            refreshGrid();
            throw e2;
        }
    });
}

18 Source : ListViewTest.java
with The Unlicense
from vaadin-learning-center

@Test
public void formShownWhenContactSelected() {
    Grid<Contact> grid = listView.grid;
    Contact firstContact = getFirsreplacedem(grid);
    ContactForm form = listView.form;
    replacedert.replacedertFalse(form.isVisible());
    grid.replacedingleSelect().setValue(firstContact);
    replacedert.replacedertTrue(form.isVisible());
    replacedert.replacedertEquals(firstContact.getFirstName(), form.firstName.getValue());
}

18 Source : GridCrud.java
with Apache License 2.0
from alejandro-du

protected void findAllButtonClicked() {
    grid.replacedingleSelect().clear();
    refreshGrid();
    showNotification(String.format(rowCountCaption, grid.getDataProvider().size(new Query())));
}

18 Source : GridCrud.java
with Apache License 2.0
from alejandro-du

protected void updateButtonClicked() {
    T domainObject = grid.replacedingleSelect().getValue();
    showForm(CrudOperation.UPDATE, domainObject, false, savedMessage, event -> {
        try {
            T updatedObject = updateOperation.perform(domainObject);
            grid.replacedingleSelect().clear();
            refreshGrid();
            grid.replacedingleSelect().setValue(updatedObject);
        // TODO: grid.scrollTo(updatedObject);
        } catch (IllegalArgumentException ignore) {
        } catch (CrudOperationException e1) {
            refreshGrid();
        } catch (Exception e2) {
            refreshGrid();
            throw e2;
        }
    });
}

4 Source : UserToGroupView.java
with MIT License
from netcore-jsa

private void buildView() {
    setHeightFull();
    setSpacing(false);
    RoleDto role = securityService.getLoggedUserRole();
    Grid<RadiusUserToGroupDto> grid = new Grid<>(RadiusUserToGroupDto.clreplaced, false);
    grid.addColumns("username", "groupName", "userInRadman", "groupInRadman");
    DataProvider<RadiusUserToGroupDto, Object> dataProvider = new SpringDataProviderBuilder<>((pageable, o) -> userService.pageRadiusUserToGroupRecords(filter, pageable), value -> userService.countRadiusUserToGroupRecords(filter)).withDefaultSort("username", SortDirection.ASCENDING).build();
    grid.setDataProvider(dataProvider);
    grid.setSortableColumns("username", "groupName");
    grid.setColumnReorderingAllowed(true);
    grid.setMinHeight("500px");
    grid.setHeight("100%");
    Button addUserToGroup = new Button("Add user to group", event -> {
        AddUserToGroupDialog addDialog = new AddUserToGroupDialog((source, bean) -> grid.getDataProvider().refreshAll());
        addDialog.startAdding();
    });
    addUserToGroup.setEnabled(role == RoleDto.ADMIN);
    ConfirmationDialog deleteDialog = new ConfirmationDialog();
    deleteDialog.setreplacedle("Delete User to Group mapping");
    deleteDialog.setDescription("Are you sure?");
    deleteDialog.setConfirmButtonCaption("Delete");
    deleteDialog.setConfirmListener(() -> {
        Optional<RadiusUserToGroupDto> optional = grid.getSelectionModel().getFirstSelectedItem();
        try {
            optional.ifPresent(userService::removeRadiusUserFromGroup);
            grid.getDataProvider().refreshAll();
        } catch (Exception e) {
            log.warn("Failed to delete user to group mapping. Reason = '{}'", e.getMessage());
            ErrorNotification.show("Error", "Ooops, something went wrong, try again please");
        }
        deleteDialog.setOpened(false);
    });
    Button removeUserFromGroup = new Button("Remove user from group", event -> deleteDialog.setOpened(true));
    removeUserFromGroup.setEnabled(false);
    grid.replacedingleSelect().addValueChangeListener(event -> removeUserFromGroup.setEnabled(Objects.nonNull(event.getValue()) && role == RoleDto.ADMIN));
    TextField search = new TextField(event -> {
        filter.setSearchText(event.getValue());
        grid.getDataProvider().refreshAll();
    });
    search.setValueChangeMode(ValueChangeMode.EAGER);
    search.setPlaceholder("Search...");
    add(new H4("Data from Radius DB - \"radusergroup\" table"));
    HorizontalLayout horizontalLayout = new HorizontalLayout();
    horizontalLayout.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.BASELINE);
    horizontalLayout.add(new H3("Users to Groups"));
    horizontalLayout.add(addUserToGroup);
    horizontalLayout.add(removeUserFromGroup);
    horizontalLayout.add(search);
    add(horizontalLayout);
    add(grid);
}

4 Source : UsersView.java
with MIT License
from netcore-jsa

private void buildView() {
    setHeightFull();
    setSpacing(false);
    RoleDto role = securityService.getLoggedUserRole();
    Grid<RadiusUserDto> grid = new Grid<>(RadiusUserDto.clreplaced, false);
    grid.addColumns("username", "description");
    DataProvider<RadiusUserDto, Object> dataProvider = new SpringDataProviderBuilder<>((pageable, o) -> userService.pageRadiusUsers(filter, pageable), value -> userService.countRadiusUsers(filter)).withDefaultSort("id", SortDirection.ASCENDING).build();
    grid.getColumns().forEach(column -> column.setResizable(true));
    grid.setDataProvider(dataProvider);
    grid.setMinHeight("500px");
    grid.setHeight("100%");
    UserCreationDialog creationDialog = new UserCreationDialog((source, bean) -> grid.getDataProvider().refreshAll());
    UserEditDialog editDialog = new UserEditDialog((source, bean) -> grid.getDataProvider().refrereplacedem(bean));
    Checkbox removeFromRadius = new Checkbox("Remove from Radius");
    ConfirmationDialog deleteDialog = new ConfirmationDialog("400px");
    deleteDialog.setreplacedle("Delete Radius user");
    deleteDialog.setConfirmButtonCaption("Delete");
    deleteDialog.setConfirmListener(() -> {
        Optional<RadiusUserDto> optional = grid.getSelectionModel().getFirstSelectedItem();
        optional.ifPresent(radiusUserDto -> {
            try {
                userService.deleteRadiusUser(radiusUserDto, removeFromRadius.getValue());
                grid.getDataProvider().refreshAll();
            } catch (Exception e) {
                log.warn("Failed to delete user. Reason = '{}'", e.getMessage());
                ErrorNotification.show("Error", "Ooops, something went wrong, try again please");
            }
        });
        deleteDialog.setOpened(false);
    });
    deleteDialog.addOpenedChangeListener(event -> {
        if (event.isOpened()) {
            removeFromRadius.setValue(false);
        }
    });
    Button createBtn = new Button("Create", event -> creationDialog.startCreation());
    createBtn.setEnabled(role == RoleDto.ADMIN);
    Button editBtn = new Button("Edit", event -> {
        RadiusUserDto dto = grid.getSelectionModel().getFirstSelectedItem().orElse(null);
        if (Objects.nonNull(dto)) {
            editDialog.edit(dto);
            deleteDialog.setOpened(false);
        }
    });
    editBtn.setEnabled(false);
    Button deleteBtn = new Button("Delete", event -> {
        Optional<RadiusUserDto> optional = grid.getSelectionModel().getFirstSelectedItem();
        optional.ifPresent(radiusUserDto -> {
            deleteDialog.setContent(removeFromRadius, new Label("Are you sure you want to delete '" + radiusUserDto.getUsername() + "' user?"));
            deleteDialog.setOpened(true);
        });
    });
    deleteBtn.setEnabled(false);
    Button loadUsers = new Button("Load from Radius", event -> {
        LoadingResult result = userService.loadRadiusUsersFromRadiusDB();
        LoadingResultNotification.show("Users load result", result);
        grid.getDataProvider().refreshAll();
    });
    loadUsers.setEnabled(role == RoleDto.ADMIN);
    grid.replacedingleSelect().addValueChangeListener(event -> {
        editBtn.setEnabled(Objects.nonNull(event.getValue()) && role == RoleDto.ADMIN);
        deleteBtn.setEnabled(Objects.nonNull(event.getValue()) && role == RoleDto.ADMIN);
    });
    TextField search = new TextField(event -> {
        filter.setSearchText(event.getValue());
        grid.getDataProvider().refreshAll();
    });
    search.setValueChangeMode(ValueChangeMode.EAGER);
    search.setPlaceholder("Search...");
    add(new H4("Data from RadMan DB"));
    HorizontalLayout horizontalLayout = new HorizontalLayout();
    horizontalLayout.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.BASELINE);
    horizontalLayout.add(new H3("Users"));
    horizontalLayout.add(createBtn);
    horizontalLayout.add(editBtn);
    horizontalLayout.add(deleteBtn);
    horizontalLayout.add(loadUsers);
    horizontalLayout.add(search);
    add(horizontalLayout);
    add(grid);
}

4 Source : UserGroupsView.java
with MIT License
from netcore-jsa

private void buildView() {
    setHeightFull();
    setSpacing(false);
    RoleDto role = securityService.getLoggedUserRole();
    Grid<RadiusGroupDto> grid = new Grid<>(RadiusGroupDto.clreplaced, false);
    grid.addColumns("name", "description");
    DataProvider<RadiusGroupDto, Object> dataProvider = new SpringDataProviderBuilder<>((pageable, o) -> service.pageRadiusUsersGroup(filter, pageable), value -> service.countRadiusUsersGroup(filter)).withDefaultSort("id", SortDirection.ASCENDING).build();
    grid.getColumns().forEach(column -> column.setResizable(true));
    grid.setDataProvider(dataProvider);
    grid.setMinHeight("500px");
    grid.setHeight("100%");
    UserGroupCreationDialog creationDialog = new UserGroupCreationDialog((source, bean) -> grid.getDataProvider().refreshAll());
    UserGroupEditDialog editDialog = new UserGroupEditDialog((source, bean) -> grid.getDataProvider().refrereplacedem(bean));
    Checkbox removeFromRadius = new Checkbox("Remove from Radius");
    ConfirmationDialog deleteDialog = new ConfirmationDialog("400px");
    deleteDialog.setreplacedle("Delete Radius group");
    deleteDialog.setContent(removeFromRadius, new Label("Are you sure?"));
    deleteDialog.setConfirmButtonCaption("Delete");
    deleteDialog.setConfirmListener(() -> {
        Optional<RadiusGroupDto> optional = grid.getSelectionModel().getFirstSelectedItem();
        optional.ifPresent(radiusGroupDto -> {
            try {
                service.deleteRadiusUsersGroup(radiusGroupDto, removeFromRadius.getValue());
                grid.getDataProvider().refreshAll();
            } catch (Exception e) {
                log.warn("Failed to delete users group. Reason = '{}'", e.getMessage());
                ErrorNotification.show("Error", "Ooops, something went wrong, try again please");
            }
        });
        deleteDialog.setOpened(false);
    });
    deleteDialog.addOpenedChangeListener(event -> {
        if (event.isOpened()) {
            removeFromRadius.setValue(false);
        }
    });
    Button createBtn = new Button("Create", event -> creationDialog.startCreation());
    createBtn.setEnabled(role == RoleDto.ADMIN);
    Button editBtn = new Button("Edit", event -> {
        RadiusGroupDto dto = grid.getSelectionModel().getFirstSelectedItem().orElse(null);
        if (Objects.nonNull(dto)) {
            editDialog.edit(dto);
            deleteDialog.setOpened(false);
        }
    });
    editBtn.setEnabled(false);
    Button deleteBtn = new Button("Delete", event -> {
        Optional<RadiusGroupDto> optional = grid.getSelectionModel().getFirstSelectedItem();
        optional.ifPresent(radiusGroupDto -> {
            deleteDialog.setContent(removeFromRadius, new Label("Are you sure you want to delete '" + radiusGroupDto.getName() + "' user group?"));
            deleteDialog.setOpened(true);
        });
    });
    deleteBtn.setEnabled(false);
    Button loadUserGroups = new Button("Load from Radius", event -> {
        LoadingResult result = service.loadRadiusGroupsFromRadiusDB();
        LoadingResultNotification.show("Groups load result", result);
        grid.getDataProvider().refreshAll();
    });
    loadUserGroups.setEnabled(role == RoleDto.ADMIN);
    grid.replacedingleSelect().addValueChangeListener(event -> {
        editBtn.setEnabled(Objects.nonNull(event.getValue()) && role == RoleDto.ADMIN);
        deleteBtn.setEnabled(Objects.nonNull(event.getValue()) && role == RoleDto.ADMIN);
    });
    TextField search = new TextField(event -> {
        filter.setSearchText(event.getValue());
        grid.getDataProvider().refreshAll();
    });
    search.setValueChangeMode(ValueChangeMode.EAGER);
    search.setPlaceholder("Search...");
    add(new H4("Data from RadMan DB"));
    HorizontalLayout horizontalLayout = new HorizontalLayout();
    horizontalLayout.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.BASELINE);
    horizontalLayout.add(new H3("Users"));
    horizontalLayout.add(createBtn);
    horizontalLayout.add(editBtn);
    horizontalLayout.add(deleteBtn);
    horizontalLayout.add(loadUserGroups);
    horizontalLayout.add(search);
    add(horizontalLayout);
    add(grid);
}

3 Source : SystemUsersView.java
with MIT License
from netcore-jsa

@SuppressWarnings("Duplicates")
private void buildView() {
    setHeightFull();
    setSpacing(false);
    RoleDto role = securityService.getLoggedUserRole();
    if (role == RoleDto.READ_ONLY) {
        add(new H2("Sorry, you don't have access to this view"));
    } else {
        Grid<SystemUserDto> grid = new Grid<>(SystemUserDto.clreplaced, false);
        grid.addColumns("username", "role");
        grid.addColumn(new LocalDateTimeRenderer<>(systemUserDto -> {
            if (systemUserDto.getLastLoginTime() == null) {
                return null;
            }
            return LocalDateTime.ofEpochSecond(systemUserDto.getLastLoginTime(), 0, OffsetDateTime.now().getOffset());
        }, DateTimeFormatter.ofPattern("EEEE, MMMM d, yyyy h:mm, a", Locale.US), "never")).setSortable(true).setHeader("Last login time").setSortProperty("lastLoginTime");
        grid.addColumn("authProvider").setHeader("Authentication provider");
        DataProvider<SystemUserDto, Object> dataProvider = new SpringDataProviderBuilder<>((pageable, o) -> service.pageSystemUsers(filter.getSearchText(), pageable), value -> service.countSystemUsers(filter.getSearchText())).withDefaultSort("id", SortDirection.ASCENDING).build();
        grid.getColumns().forEach(column -> column.setResizable(true));
        grid.setColumnReorderingAllowed(true);
        grid.setDataProvider(dataProvider);
        grid.setMinHeight("500px");
        grid.setHeight("100%");
        SystemUserCreationDialog createDialog = new SystemUserCreationDialog((source, bean) -> grid.getDataProvider().refreshAll());
        SystemUserEditDialog editDialog = new SystemUserEditDialog((source, bean) -> grid.getDataProvider().refrereplacedem(bean));
        ConfirmationDialog deleteDialog = new ConfirmationDialog();
        deleteDialog.setreplacedle("Delete system user");
        deleteDialog.setConfirmButtonCaption("Confirm");
        deleteDialog.setConfirmListener(() -> {
            SystemUserDto user = grid.getSelectionModel().getFirstSelectedItem().orElse(null);
            if (Objects.nonNull(user)) {
                service.deleteSystemUser(user);
                grid.getDataProvider().refreshAll();
                deleteDialog.setOpened(false);
            }
        });
        Button createBtn = new Button("Create", event -> createDialog.startCreation());
        Button editBtn = new Button("Edit", event -> {
            SystemUserDto user = grid.getSelectionModel().getFirstSelectedItem().orElse(null);
            if (Objects.nonNull(user)) {
                editDialog.edit(user);
            }
        });
        editBtn.setEnabled(false);
        Button deleteBtn = new Button("Delete", event -> {
            SystemUserDto user = grid.getSelectionModel().getFirstSelectedItem().orElse(null);
            if (Objects.nonNull(user)) {
                deleteDialog.setDescription("Are you sure you want to delete '" + user.getUsername() + "' user?");
                deleteDialog.setOpened(true);
            }
        });
        deleteBtn.setEnabled(false);
        grid.replacedingleSelect().addValueChangeListener(event -> {
            editBtn.setEnabled(Objects.nonNull(event.getValue()));
            deleteBtn.setEnabled(Objects.nonNull(event.getValue()));
        });
        TextField search = new TextField(event -> {
            filter.setSearchText(event.getValue());
            grid.getDataProvider().refreshAll();
        });
        search.setValueChangeMode(ValueChangeMode.EAGER);
        search.setPlaceholder("Search...");
        add(new H4("Data from RadMan DB"));
        HorizontalLayout horizontalLayout = new HorizontalLayout();
        horizontalLayout.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.BASELINE);
        horizontalLayout.add(new H3("System users"));
        horizontalLayout.add(createBtn);
        horizontalLayout.add(editBtn);
        horizontalLayout.add(deleteBtn);
        horizontalLayout.add(search);
        add(horizontalLayout);
        add(grid);
    }
}

3 Source : NasGroupsView.java
with MIT License
from netcore-jsa

private void buildView() {
    setHeightFull();
    setSpacing(false);
    RoleDto role = securityService.getLoggedUserRole();
    Grid<NasGroupDto> grid = new Grid<>(NasGroupDto.clreplaced, false);
    grid.setColumns("groupName", "nasIpAddress", "nasPortId");
    DataProvider<NasGroupDto, Object> dataProvider = new SpringDataProviderBuilder<>((pageable, o) -> nreplacedervice.pageNasGroupRecords(filter.getSearchText(), pageable), value -> nreplacedervice.countNasGroupRecords(filter.getSearchText())).withDefaultSort("id", SortDirection.ASCENDING).build();
    grid.getColumns().forEach(column -> column.setResizable(true));
    grid.setColumnReorderingAllowed(true);
    grid.setDataProvider(dataProvider);
    grid.setMinHeight("500px");
    grid.setHeight("100%");
    NasGroupCreateDialog createDialog = new NasGroupCreateDialog(nreplacedervice, (source, bean) -> grid.getDataProvider().refreshAll());
    NasGroupEditDialog editDialog = new NasGroupEditDialog(nreplacedervice, (source, bean) -> grid.getDataProvider().refrereplacedem(bean));
    ConfirmationDialog deleteDialog = new ConfirmationDialog("400px");
    deleteDialog.setreplacedle("Delete NAS group");
    deleteDialog.setConfirmButtonCaption("Delete");
    deleteDialog.setConfirmListener(() -> {
        Optional<NasGroupDto> optional = grid.getSelectionModel().getFirstSelectedItem();
        optional.ifPresent(nasGroupDto -> {
            try {
                nreplacedervice.deleteNasGroup(nasGroupDto);
                grid.getDataProvider().refreshAll();
            } catch (Exception e) {
                log.warn("Failed to delete NAS group. Reason = '{}'", e.getMessage());
                ErrorNotification.show("Error", "Ooops, something went wrong, try again please");
            }
            deleteDialog.setOpened(false);
        });
    });
    Button createBtn = new Button("Create", event -> createDialog.startNasGroupCreation());
    createBtn.setEnabled(role == RoleDto.ADMIN);
    Button editBtn = new Button("Edit", event -> {
        NasGroupDto dto = grid.getSelectionModel().getFirstSelectedItem().orElse(null);
        if (Objects.nonNull(dto)) {
            editDialog.editNasGroup(dto);
        }
    });
    editBtn.setEnabled(false);
    Button deleteBtn = new Button("Delete", event -> {
        Optional<NasGroupDto> optional = grid.getSelectionModel().getFirstSelectedItem();
        optional.ifPresent(nasGroupDto -> {
            deleteDialog.setDescription("Are you sure you want to delete '" + nasGroupDto.getGroupName() + "' NAS group?");
            deleteDialog.setOpened(true);
        });
    });
    deleteBtn.setEnabled(false);
    grid.replacedingleSelect().addValueChangeListener(event -> {
        editBtn.setEnabled(Objects.nonNull(event.getValue()) && role == RoleDto.ADMIN);
        deleteBtn.setEnabled(Objects.nonNull(event.getValue()) && role == RoleDto.ADMIN);
    });
    TextField search = new TextField(event -> {
        filter.setSearchText(event.getValue());
        grid.getDataProvider().refreshAll();
    });
    search.setValueChangeMode(ValueChangeMode.EAGER);
    search.setPlaceholder("Search...");
    add(new H4("Data from Radius DB - \"radhuntgroup\" table"));
    HorizontalLayout horizontalLayout = new HorizontalLayout();
    horizontalLayout.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.BASELINE);
    horizontalLayout.add(new H3("NAS groups"));
    horizontalLayout.add(createBtn);
    horizontalLayout.add(editBtn);
    horizontalLayout.add(deleteBtn);
    horizontalLayout.add(search);
    add(horizontalLayout);
    add(grid);
}

2 Source : AccountingView.java
with MIT License
from netcore-jsa

private void buildView() {
    setHeightFull();
    setSpacing(false);
    Grid<AccountingDto> grid = new Grid<>(AccountingDto.clreplaced, false);
    grid.addColumns("username", "callingStationId", "nasIpAddress", "serviceType");
    grid.addColumn(new LocalDateTimeRenderer<>((ValueProvider<AccountingDto, LocalDateTime>) accountingDto -> {
        if (Objects.isNull(accountingDto.getAcctStartTime())) {
            return null;
        }
        return LocalDateTime.ofInstant(accountingDto.getAcctStartTime().toInstant(), TimeZone.getDefault().toZoneId());
    })).setSortProperty("acctStartTime").setHeader("Acct Start Time");
    grid.addColumn(new LocalDateTimeRenderer<>((ValueProvider<AccountingDto, LocalDateTime>) accountingDto -> {
        if (Objects.isNull(accountingDto.getAcctStopTime())) {
            return null;
        }
        return LocalDateTime.ofInstant(accountingDto.getAcctStopTime().toInstant(), TimeZone.getDefault().toZoneId());
    })).setSortProperty("acctStopTime").setHeader("Acct Stop Time");
    grid.addColumns("acctTerminateCause", "framedIpAddress", "framedProtocol");
    grid.addColumns("acctAuthentic", "acctInputOctets", "acctInterval", "acctOutputOctets", "acctSessionId");
    grid.addColumn(accountingDto -> {
        if (Objects.isNull(accountingDto.getAcctSessionTime())) {
            return null;
        }
        return DurationFormatUtils.formatDurationHMS(accountingDto.getAcctSessionTime());
    }).setSortProperty("acctSessionTime").setHeader("Acct Session Time");
    grid.addColumns("acctUniqueId", "acctUpdateTime", "calledStationId", "connectInfoStart", "connectInfoStop", "nasPortId", "nasPortType", "radAcctId", "realm");
    DataProvider<AccountingDto, Object> dataProvider = new SpringDataProviderBuilder<>((pageable, o) -> accountingService.pageAccountingRecords(filter, pageable), value -> accountingService.countAccountingRecords(filter)).withDefaultSort("acctStartTime", SortDirection.DESCENDING).build();
    grid.setDataProvider(dataProvider);
    grid.getColumns().forEach(column -> column.setResizable(true));
    grid.setColumnReorderingAllowed(true);
    grid.setMinHeight("500px");
    grid.setHeight("100%");
    TextField search = new TextField(event -> {
        filter.setSearchText(event.getValue());
        grid.getDataProvider().refreshAll();
    });
    search.setValueChangeMode(ValueChangeMode.EAGER);
    search.setPlaceholder("Search...");
    SetAcctStopTimeDialog setAcctStopTimeDialog = new SetAcctStopTimeDialog((source, bean) -> grid.getDataProvider().refrereplacedem(bean));
    Button setAcctStopTimeButton = new Button("Set Acct Stop Time", event -> {
        Optional<AccountingDto> optional = grid.getSelectionModel().getFirstSelectedItem();
        optional.ifPresent(setAcctStopTimeDialog::set);
    });
    setAcctStopTimeButton.setEnabled(false);
    grid.replacedingleSelect().addValueChangeListener(event -> setAcctStopTimeButton.setEnabled(Objects.nonNull(event.getValue())));
    Checkbox onlyActiveSessions = new Checkbox("Filter only active sessions");
    onlyActiveSessions.setValue(filter.isSearchOnlyActiveSessions());
    onlyActiveSessions.addValueChangeListener(event -> {
        filter.setSearchOnlyActiveSessions(event.getValue());
        grid.getDataProvider().refreshAll();
    });
    add(new H4("Data from Radius DB - \"radacct\" table"));
    HorizontalLayout horizontalLayout = new HorizontalLayout();
    horizontalLayout.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.BASELINE);
    horizontalLayout.add(new H3("Accounting"));
    horizontalLayout.add(setAcctStopTimeButton);
    horizontalLayout.add(search);
    horizontalLayout.add(onlyActiveSessions);
    add(horizontalLayout);
    add(grid);
}

1 Source : NasView.java
with MIT License
from netcore-jsa

private void buildView() {
    setHeightFull();
    setSpacing(false);
    RoleDto role = securityService.getLoggedUserRole();
    Grid<NasDto> grid = new Grid<>(NasDto.clreplaced, false);
    grid.addColumns("nasName", "shortName", "description");
    grid.addColumn((ValueProvider<NasDto, String>) nasDto -> nasDto.getSecret().replaceAll(".", "*")).setHeader("Secret");
    grid.addColumns("server", "community", "ports", "type");
    DataProvider<NasDto, Object> dataProvider = new SpringDataProviderBuilder<>((pageable, o) -> nreplacedervice.pageNasRecords(filter.getSearchText(), pageable), value -> nreplacedervice.countNasRecords(filter.getSearchText())).withDefaultSort("id", SortDirection.ASCENDING).build();
    grid.setDataProvider(dataProvider);
    grid.getColumns().forEach(column -> column.setResizable(true));
    grid.setColumnReorderingAllowed(true);
    grid.setMinHeight("500px");
    grid.setHeight("100%");
    ConfirmationDialog nasDeleteDialog = new ConfirmationDialog("400px");
    nasDeleteDialog.setreplacedle("Delete NAS");
    nasDeleteDialog.setConfirmButtonCaption("Delete");
    nasDeleteDialog.setConfirmListener(() -> {
        NasDto nasDto = grid.getSelectionModel().getFirstSelectedItem().orElse(null);
        if (Objects.nonNull(nasDto)) {
            try {
                nreplacedervice.deleteNas(nasDto);
                grid.getDataProvider().refreshAll();
            } catch (Exception e) {
                log.warn("Failed to delete NAS. Reason = '{}'", e.getMessage());
                ErrorNotification.show("Error", "Ooops, something went wrong, try again please");
            }
        }
        nasDeleteDialog.setOpened(false);
    });
    NasEditDialog nasEditDialog = new NasEditDialog(nreplacedervice, (source, bean) -> grid.getDataProvider().refrereplacedem(bean));
    NasCreateDialog nasCreateDialog = new NasCreateDialog(nreplacedervice, (source, bean) -> grid.getDataProvider().refreshAll());
    Button createBtn = new Button("Create", event -> nasCreateDialog.startNasCreation());
    createBtn.setEnabled(role == RoleDto.ADMIN);
    Button editBtn = new Button("Edit", event -> {
        NasDto nasDto = grid.getSelectionModel().getFirstSelectedItem().orElse(null);
        if (Objects.nonNull(nasDto)) {
            nasEditDialog.editNas(nasDto);
        }
    });
    editBtn.setEnabled(false);
    Button deleteBtn = new Button("Delete", event -> {
        NasDto nasDto = grid.getSelectionModel().getFirstSelectedItem().orElse(null);
        if (Objects.nonNull(nasDto)) {
            nasDeleteDialog.setDescription("Are you sure you want to delete '" + nasDto.getNasName() + "' NAS?");
            nasDeleteDialog.setOpened(true);
        }
    });
    deleteBtn.setEnabled(false);
    grid.replacedingleSelect().addValueChangeListener(event -> {
        editBtn.setEnabled(Objects.nonNull(event.getValue()) && role == RoleDto.ADMIN);
        deleteBtn.setEnabled(Objects.nonNull(event.getValue()) && role == RoleDto.ADMIN);
    });
    TextField search = new TextField(event -> {
        filter.setSearchText(event.getValue());
        grid.getDataProvider().refreshAll();
    });
    search.setValueChangeMode(ValueChangeMode.EAGER);
    search.setPlaceholder("Search...");
    add(new H4("Data from Radius DB - \"nas\" table"));
    HorizontalLayout horizontalLayout = new HorizontalLayout();
    horizontalLayout.setDefaultVerticalComponentAlignment(FlexComponent.Alignment.BASELINE);
    horizontalLayout.add(new H3("NAS"));
    horizontalLayout.add(createBtn);
    horizontalLayout.add(editBtn);
    horizontalLayout.add(deleteBtn);
    horizontalLayout.add(search);
    add(horizontalLayout);
    add(grid);
}