Search in sources :

Example 16 with ComponentRenderer

use of com.vaadin.flow.data.renderer.ComponentRenderer in project furms by unity-idm.

the class ProjectAllocationComponent method createCommunityGrid.

private Grid<ProjectAllocationGridModel> createCommunityGrid() {
    Grid<ProjectAllocationGridModel> grid = new DenseGrid<>(ProjectAllocationGridModel.class);
    grid.addComponentColumn(model -> {
        Icon icon = grid.isDetailsVisible(model) ? ANGLE_DOWN.create() : ANGLE_RIGHT.create();
        return new Div(icon, new Text(model.siteName));
    }).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.1")).setSortable(true);
    grid.addComponentColumn(model -> {
        if (hasTerminalStatus(model))
            return new RouterLink(model.name, ProjectAllocationFormView.class, model.id);
        return new Text(model.name);
    }).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.2")).setSortable(true).setComparator(model -> model.name.toLowerCase());
    grid.addColumn(model -> model.resourceTypeName).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.3")).setSortable(true);
    grid.addColumn(model -> model.amountWithUnit).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.4")).setSortable(true).setComparator(comparing(c -> c.amountWithUnit.amount));
    grid.addColumn(model -> model.consumedWithUnit).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.5")).setSortable(true).setComparator(comparing(c -> c.consumedWithUnit.amount));
    grid.addColumn(model -> model.remainingWithUnit).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.6")).setSortable(true).setComparator(comparing(c -> c.remainingWithUnit.amount));
    grid.addComponentColumn(c -> {
        Optional<ProjectAllocationInstallation> projectAllocationInstallations = projectDataSnapshot.getAllocation(c.id);
        Optional<ProjectDeallocation> deallocation = projectDataSnapshot.getDeallocationStatus(c.id);
        if (deallocation.isPresent()) {
            int statusId = deallocation.get().status.getPersistentId();
            return new StatusLayout(getTranslation("view.community-admin.project-allocation.deallocation-status." + statusId), deallocation.flatMap(x -> x.errorMessage).map(x -> x.message).orElse(null), getContent());
        }
        return projectAllocationInstallations.map(installation -> {
            final int statusId = installation.status.getPersistentId();
            return new StatusLayout(getTranslation("view.community-admin.project-allocation.status." + statusId), installation.errorMessage.map(x -> x.message).orElse(null), getContent());
        }).orElseGet(StatusLayout::new);
    }).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.7")).setSortable(true);
    grid.addComponentColumn(model -> new ResourceProgressBar(model.amountWithUnit.amount, model.consumedWithUnit.amount, 0)).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.8")).setTextAlign(ColumnTextAlign.CENTER);
    grid.addComponentColumn(this::createLastColumnContent).setHeader(getTranslation("view.community-admin.project-allocation.grid.column.9")).setTextAlign(ColumnTextAlign.END);
    grid.setItemDetailsRenderer(new ComponentRenderer<>(x -> new Div(AllocationDetailsComponentFactory.create(x.creationTime, x.validFrom, x.validTo), AllocationDetailsComponentFactory.create(projectDataSnapshot.getChunks(x.id), x.amountWithUnit.unit))));
    grid.setSelectionMode(Grid.SelectionMode.NONE);
    return grid;
}
Also used : VaadinExceptionHandler.handleExceptions(io.imunity.furms.ui.utils.VaadinExceptionHandler.handleExceptions) ComponentRenderer(com.vaadin.flow.data.renderer.ComponentRenderer) ResourceGetter.getCurrentResourceId(io.imunity.furms.ui.utils.ResourceGetter.getCurrentResourceId) Component(com.vaadin.flow.component.Component) Composite(com.vaadin.flow.component.Composite) NotificationUtils.showErrorNotification(io.imunity.furms.ui.utils.NotificationUtils.showErrorNotification) Div(com.vaadin.flow.component.html.Div) FurmsDialog(io.imunity.furms.ui.components.FurmsDialog) MenuButton(io.imunity.furms.ui.components.MenuButton) Supplier(java.util.function.Supplier) REFRESH(com.vaadin.flow.component.icon.VaadinIcon.REFRESH) ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) DenseGrid(io.imunity.furms.ui.components.DenseGrid) ProjectAllocationService(io.imunity.furms.api.project_allocation.ProjectAllocationService) Map(java.util.Map) RouterLink(com.vaadin.flow.router.RouterLink) ProjectDeallocationStatus(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocationStatus) SPLINE_CHART(com.vaadin.flow.component.icon.VaadinIcon.SPLINE_CHART) UI(com.vaadin.flow.component.UI) ANGLE_RIGHT(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_RIGHT) Comparator.comparing(java.util.Comparator.comparing) Icon(com.vaadin.flow.component.icon.Icon) QueryParameters(com.vaadin.flow.router.QueryParameters) Text(com.vaadin.flow.component.Text) AllocationDetailsComponentFactory(io.imunity.furms.ui.components.AllocationDetailsComponentFactory) Grid(com.vaadin.flow.component.grid.Grid) RemovalOfConsumedProjectAllocationIsFirbiddenException(io.imunity.furms.api.validation.exceptions.RemovalOfConsumedProjectAllocationIsFirbiddenException) TRASH(com.vaadin.flow.component.icon.VaadinIcon.TRASH) EDIT(com.vaadin.flow.component.icon.VaadinIcon.EDIT) MenuItem(com.vaadin.flow.component.contextmenu.MenuItem) RouterGridLink(io.imunity.furms.ui.components.RouterGridLink) GridActionMenu(io.imunity.furms.ui.components.GridActionMenu) GridActionsButtonLayout(io.imunity.furms.ui.components.GridActionsButtonLayout) ResourceProgressBar(io.imunity.furms.ui.components.ResourceProgressBar) ANGLE_DOWN(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_DOWN) Button(com.vaadin.flow.component.button.Button) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) ColumnTextAlign(com.vaadin.flow.component.grid.ColumnTextAlign) StatusLayout(io.imunity.furms.ui.components.StatusLayout) ProjectService(io.imunity.furms.api.projects.ProjectService) ProjectAllocationDataSnapshot(io.imunity.furms.ui.project_allocation.ProjectAllocationDataSnapshot) Optional(java.util.Optional) Dialog(com.vaadin.flow.component.dialog.Dialog) Collections(java.util.Collections) ViewHeaderLayout(io.imunity.furms.ui.components.ViewHeaderLayout) DenseGrid(io.imunity.furms.ui.components.DenseGrid) Text(com.vaadin.flow.component.Text) ResourceProgressBar(io.imunity.furms.ui.components.ResourceProgressBar) Div(com.vaadin.flow.component.html.Div) RouterLink(com.vaadin.flow.router.RouterLink) ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) StatusLayout(io.imunity.furms.ui.components.StatusLayout) Icon(com.vaadin.flow.component.icon.Icon)

Example 17 with ComponentRenderer

use of com.vaadin.flow.data.renderer.ComponentRenderer in project furms by unity-idm.

the class ResourceAllocationsView method createCommunityGrid.

private Grid<ProjectAllocationGridModel> createCommunityGrid() {
    Grid<ProjectAllocationGridModel> grid = new DenseGrid<>(ProjectAllocationGridModel.class);
    grid.addComponentColumn(allocation -> {
        Icon icon = grid.isDetailsVisible(allocation) ? ANGLE_DOWN.create() : ANGLE_RIGHT.create();
        return new Div(icon, new Label(allocation.siteName));
    }).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.1")).setSortable(true);
    grid.addColumn(model -> model.name).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.2")).setSortable(true).setComparator(model -> model.name.toLowerCase());
    grid.addColumn(model -> model.resourceTypeName).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.3")).setSortable(true);
    grid.addColumn(model -> model.amountWithUnit).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.4")).setSortable(true).setComparator(comparing(model -> model.amountWithUnit.amount));
    grid.addColumn(model -> model.consumedWithUnit).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.5")).setSortable(true).setComparator(comparing(model -> model.consumedWithUnit.amount));
    grid.addColumn(model -> model.remainingWithUnit).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.6")).setSortable(true).setComparator(comparing(model -> model.remainingWithUnit.amount));
    grid.addComponentColumn(c -> {
        Optional<ProjectAllocationInstallation> projectAllocationInstallations = projectDataSnapshot.getAllocation(c.id);
        Optional<ProjectDeallocation> deallocation = projectDataSnapshot.getDeallocationStatus(c.id);
        if (deallocation.isPresent()) {
            int statusId = deallocation.get().status.getPersistentId();
            return new StatusLayout(getTranslation("view.community-admin.project-allocation.deallocation-status." + statusId), deallocation.flatMap(x -> x.errorMessage).map(x -> x.message).orElse(null), getContent());
        }
        return projectAllocationInstallations.map(installation -> {
            final int statusId = installation.status.getPersistentId();
            return new StatusLayout(getTranslation("view.community-admin.project-allocation.status." + statusId), installation.errorMessage.map(x -> x.message).orElse(null), getContent());
        }).orElseGet(StatusLayout::new);
    }).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.7")).setSortable(true);
    grid.addComponentColumn(model -> new ResourceProgressBar(model.amountWithUnit.amount, model.consumedWithUnit.amount, projectDataSnapshot.getAlarmThreshold(model.id))).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.8")).setTextAlign(ColumnTextAlign.CENTER);
    grid.addComponentColumn(this::createLastColumnContent).setHeader(getTranslation("view.project-admin.resource-allocations.grid.column.9")).setTextAlign(ColumnTextAlign.END);
    grid.setItemDetailsRenderer(new ComponentRenderer<>(c -> AllocationDetailsComponentFactory.create(projectDataSnapshot.getChunks(c.id), c.amountWithUnit.unit)));
    grid.setSelectionMode(Grid.SelectionMode.NONE);
    return grid;
}
Also used : VaadinExceptionHandler.handleExceptions(io.imunity.furms.ui.utils.VaadinExceptionHandler.handleExceptions) ComponentRenderer(com.vaadin.flow.data.renderer.ComponentRenderer) ResourceGetter.getCurrentResourceId(io.imunity.furms.ui.utils.ResourceGetter.getCurrentResourceId) Component(com.vaadin.flow.component.Component) HorizontalLayout(com.vaadin.flow.component.orderedlayout.HorizontalLayout) Div(com.vaadin.flow.component.html.Div) Label(com.vaadin.flow.component.html.Label) MenuButton(io.imunity.furms.ui.components.MenuButton) PageTitle(io.imunity.furms.ui.components.PageTitle) Route(com.vaadin.flow.router.Route) REFRESH(com.vaadin.flow.component.icon.VaadinIcon.REFRESH) ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) DenseGrid(io.imunity.furms.ui.components.DenseGrid) ProjectAllocationService(io.imunity.furms.api.project_allocation.ProjectAllocationService) FurmsViewComponent(io.imunity.furms.ui.components.FurmsViewComponent) SPLINE_CHART(com.vaadin.flow.component.icon.VaadinIcon.SPLINE_CHART) ANGLE_RIGHT(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_RIGHT) Comparator.comparing(java.util.Comparator.comparing) Icon(com.vaadin.flow.component.icon.Icon) ProjectAdminMenu(io.imunity.furms.ui.views.project.ProjectAdminMenu) AllocationDetailsComponentFactory(io.imunity.furms.ui.components.AllocationDetailsComponentFactory) Grid(com.vaadin.flow.component.grid.Grid) RouterGridLink(io.imunity.furms.ui.components.RouterGridLink) GridActionMenu(io.imunity.furms.ui.components.GridActionMenu) GridActionsButtonLayout(io.imunity.furms.ui.components.GridActionsButtonLayout) ResourceProgressBar(io.imunity.furms.ui.components.ResourceProgressBar) ANGLE_DOWN(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_DOWN) List(java.util.List) Collectors.toList(java.util.stream.Collectors.toList) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) AlarmService(io.imunity.furms.api.alarms.AlarmService) ColumnTextAlign(com.vaadin.flow.component.grid.ColumnTextAlign) StatusLayout(io.imunity.furms.ui.components.StatusLayout) ProjectAllocationDataSnapshot(io.imunity.furms.ui.project_allocation.ProjectAllocationDataSnapshot) Optional(java.util.Optional) ProjectAllocationResolved(io.imunity.furms.domain.project_allocation.ProjectAllocationResolved) Collections(java.util.Collections) ViewHeaderLayout(io.imunity.furms.ui.components.ViewHeaderLayout) DenseGrid(io.imunity.furms.ui.components.DenseGrid) Label(com.vaadin.flow.component.html.Label) ResourceProgressBar(io.imunity.furms.ui.components.ResourceProgressBar) Div(com.vaadin.flow.component.html.Div) ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) StatusLayout(io.imunity.furms.ui.components.StatusLayout) Icon(com.vaadin.flow.component.icon.Icon)

Example 18 with ComponentRenderer

use of com.vaadin.flow.data.renderer.ComponentRenderer in project furms by unity-idm.

the class ProjectView method createCommunityGrid.

private Grid<ProjectAllocationGridModel> createCommunityGrid() {
    Grid<ProjectAllocationGridModel> grid = new DenseGrid<>(ProjectAllocationGridModel.class);
    grid.addComponentColumn(allocation -> {
        Icon icon = grid.isDetailsVisible(allocation) ? ANGLE_DOWN.create() : ANGLE_RIGHT.create();
        return new Div(icon, new Label(allocation.siteName));
    }).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.1")).setSortable(true);
    grid.addColumn(model -> model.name).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.2")).setSortable(true).setComparator(model -> model.name.toLowerCase());
    grid.addColumn(model -> model.resourceTypeName).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.3")).setSortable(true);
    grid.addColumn(model -> model.amountWithUnit).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.4")).setSortable(true).setComparator(comparing(model -> model.amountWithUnit.amount));
    grid.addColumn(model -> model.consumedWithUnit).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.5")).setSortable(true).setComparator(comparing(model -> model.consumedWithUnit.amount));
    grid.addColumn(model -> model.remainingWithUnit).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.6")).setSortable(true).setComparator(comparing(model -> model.remainingWithUnit.amount));
    grid.addComponentColumn(c -> {
        Optional<ProjectAllocationInstallation> projectAllocationInstallations = projectDataSnapshot.getParent().getAllocation(c.id);
        Optional<ProjectDeallocation> deallocation = projectDataSnapshot.getParent().getDeallocationStatus(c.id);
        if (deallocation.isPresent()) {
            int statusId = deallocation.get().status.getPersistentId();
            return new StatusLayout(getTranslation("view.community-admin.project-allocation.deallocation-status." + statusId), deallocation.flatMap(x -> x.errorMessage).map(x -> x.message).orElse(null), getContent());
        }
        return projectAllocationInstallations.map(installation -> {
            final int statusId = installation.status.getPersistentId();
            return new StatusLayout(getTranslation("view.community-admin.project-allocation.status." + statusId), installation.errorMessage.map(x -> x.message).orElse(null), getContent());
        }).orElseGet(StatusLayout::new);
    }).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.7")).setSortable(true);
    grid.addColumn(x -> getEnabledValue(x.id, x.accessibleForAllProjectMembers)).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.8")).setSortable(true);
    grid.addComponentColumn(model -> new ResourceProgressBar(model.amountWithUnit.amount, model.consumedWithUnit.amount, projectDataSnapshot.projectAllocationDataSnapshot.getAlarmThreshold(model.id))).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.9")).setTextAlign(ColumnTextAlign.CENTER);
    grid.addComponentColumn(this::createLastColumnContent).setHeader(getTranslation("view.user-settings.project-allocation.grid.column.10")).setTextAlign(ColumnTextAlign.END);
    grid.setItemDetailsRenderer(new ComponentRenderer<>(c -> AllocationDetailsComponentFactory.create(projectDataSnapshot.getParent().getChunks(c.id), c.amountWithUnit.unit)));
    grid.setSelectionMode(Grid.SelectionMode.NONE);
    return grid;
}
Also used : ComponentRenderer(com.vaadin.flow.data.renderer.ComponentRenderer) Component(com.vaadin.flow.component.Component) HorizontalLayout(com.vaadin.flow.component.orderedlayout.HorizontalLayout) Label(com.vaadin.flow.component.html.Label) MenuButton(io.imunity.furms.ui.components.MenuButton) PageTitle(io.imunity.furms.ui.components.PageTitle) BeforeEvent(com.vaadin.flow.router.BeforeEvent) ResourceAccessService(io.imunity.furms.api.resource_access.ResourceAccessService) Route(com.vaadin.flow.router.Route) GRANTED_STATUES(io.imunity.furms.domain.resource_access.AccessStatus.GRANTED_STATUES) DenseGrid(io.imunity.furms.ui.components.DenseGrid) Collectors.toMap(java.util.stream.Collectors.toMap) Map(java.util.Map) ANGLE_RIGHT(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_RIGHT) AllocationDetailsComponentFactory(io.imunity.furms.ui.components.AllocationDetailsComponentFactory) UserGrant(io.imunity.furms.domain.resource_access.UserGrant) RouterGridLink(io.imunity.furms.ui.components.RouterGridLink) ResourceProgressBar(io.imunity.furms.ui.components.ResourceProgressBar) BreadCrumbParameter(io.imunity.furms.ui.components.layout.BreadCrumbParameter) ANGLE_DOWN(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_DOWN) OptionalParameter(com.vaadin.flow.router.OptionalParameter) List(java.util.List) AlarmService(io.imunity.furms.api.alarms.AlarmService) ColumnTextAlign(com.vaadin.flow.component.grid.ColumnTextAlign) StatusLayout(io.imunity.furms.ui.components.StatusLayout) Function.identity(java.util.function.Function.identity) Optional(java.util.Optional) UserWithoutFenixIdValidationError(io.imunity.furms.api.validation.exceptions.UserWithoutFenixIdValidationError) ProjectAllocationResolved(io.imunity.furms.domain.project_allocation.ProjectAllocationResolved) ViewHeaderLayout(io.imunity.furms.ui.components.ViewHeaderLayout) VaadinExceptionHandler.handleExceptions(io.imunity.furms.ui.utils.VaadinExceptionHandler.handleExceptions) Project(io.imunity.furms.domain.projects.Project) NotificationUtils.showErrorNotification(io.imunity.furms.ui.utils.NotificationUtils.showErrorNotification) Div(com.vaadin.flow.component.html.Div) REFRESH(com.vaadin.flow.component.icon.VaadinIcon.REFRESH) ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) ProjectAllocationService(io.imunity.furms.api.project_allocation.ProjectAllocationService) FurmsViewComponent(io.imunity.furms.ui.components.FurmsViewComponent) SPLINE_CHART(com.vaadin.flow.component.icon.VaadinIcon.SPLINE_CHART) UserSettingsMenu(io.imunity.furms.ui.views.user_settings.UserSettingsMenu) Comparator.comparing(java.util.Comparator.comparing) Icon(com.vaadin.flow.component.icon.Icon) Grid(com.vaadin.flow.component.grid.Grid) GridActionMenu(io.imunity.furms.ui.components.GridActionMenu) GridActionsButtonLayout(io.imunity.furms.ui.components.GridActionsButtonLayout) Collectors.toList(java.util.stream.Collectors.toList) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) ProjectService(io.imunity.furms.api.projects.ProjectService) ProjectAllocationDataSnapshot(io.imunity.furms.ui.project_allocation.ProjectAllocationDataSnapshot) Collections(java.util.Collections) DenseGrid(io.imunity.furms.ui.components.DenseGrid) Label(com.vaadin.flow.component.html.Label) ResourceProgressBar(io.imunity.furms.ui.components.ResourceProgressBar) Div(com.vaadin.flow.component.html.Div) ProjectAllocationInstallation(io.imunity.furms.domain.project_allocation_installation.ProjectAllocationInstallation) ProjectDeallocation(io.imunity.furms.domain.project_allocation_installation.ProjectDeallocation) StatusLayout(io.imunity.furms.ui.components.StatusLayout) Icon(com.vaadin.flow.component.icon.Icon)

Example 19 with ComponentRenderer

use of com.vaadin.flow.data.renderer.ComponentRenderer in project furms by unity-idm.

the class PendingRequestsView method createPendingMessagesGrid.

private Grid<PendingMessageGridModel> createPendingMessagesGrid(Map<CorrelationId, Checkbox> checkboxes, Component mainContextMenu) {
    Grid<PendingMessageGridModel> grid;
    grid = new DenseGrid<>(PendingMessageGridModel.class);
    grid.addComponentColumn(pendingMessageGridModel -> {
        Checkbox checkbox = new Checkbox();
        checkboxes.put(pendingMessageGridModel.id, checkbox);
        HorizontalLayout horizontalLayout = new HorizontalLayout(checkbox, grid.isDetailsVisible(pendingMessageGridModel) ? ANGLE_DOWN.create() : ANGLE_RIGHT.create(), new Paragraph(getTranslationOrDefault("view.site-admin.pending-requests.page.grid.operation-type." + pendingMessageGridModel.operationType, pendingMessageGridModel.operationType)));
        horizontalLayout.setAlignItems(CENTER);
        return horizontalLayout;
    }).setHeader(new HorizontalLayout(mainContextMenu, new Label(getTranslation("view.site-admin.pending-requests.page.grid.1")))).setFlexGrow(2);
    grid.addColumn(model -> model.status).setHeader(getTranslation("view.site-admin.pending-requests.page.grid.2")).setSortable(true);
    grid.addColumn(model -> model.sentAt.format(dateTimeFormatter)).setHeader(getTranslation("view.site-admin.pending-requests.page.grid.3")).setSortable(true);
    grid.addColumn(model -> Optional.ofNullable(model.ackAt).map(ackTime -> ackTime.format(dateTimeFormatter)).orElse("")).setHeader(getTranslation("view.site-admin.pending-requests.page.grid.4")).setSortable(true);
    grid.addColumn(model -> model.retryAmount).setHeader(getTranslation("view.site-admin.pending-requests.page.grid.5")).setSortable(true);
    grid.addComponentColumn(this::createContextMenu).setHeader(getTranslation("view.site-admin.pending-requests.page.grid.6")).setTextAlign(ColumnTextAlign.END);
    grid.setItemDetailsRenderer(new ComponentRenderer<>(data -> {
        Paragraph json = new Paragraph(data.json);
        json.getStyle().set("font-family", "monospace");
        json.getStyle().set("word-wrap", "break-word");
        json.getElement().getStyle().set("white-space", "pre-wrap");
        return json;
    }));
    return grid;
}
Also used : ComponentRenderer(com.vaadin.flow.data.renderer.ComponentRenderer) UTCTimeUtils.convertToZoneTime(io.imunity.furms.utils.UTCTimeUtils.convertToZoneTime) Component(com.vaadin.flow.component.Component) PLAY(com.vaadin.flow.component.icon.VaadinIcon.PLAY) HorizontalLayout(com.vaadin.flow.component.orderedlayout.HorizontalLayout) LoggerFactory(org.slf4j.LoggerFactory) Label(com.vaadin.flow.component.html.Label) MenuButton(io.imunity.furms.ui.components.MenuButton) PageTitle(io.imunity.furms.ui.components.PageTitle) Route(com.vaadin.flow.router.Route) DenseGrid(io.imunity.furms.ui.components.DenseGrid) SiteAgentConnectionService(io.imunity.furms.api.site_agent_pending_message.SiteAgentConnectionService) Map(java.util.Map) UI(com.vaadin.flow.component.UI) ANGLE_RIGHT(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_RIGHT) Paragraph(com.vaadin.flow.component.html.Paragraph) SiteAdminMenu(io.imunity.furms.ui.views.site.SiteAdminMenu) CorrelationId(io.imunity.furms.domain.site_agent.CorrelationId) MethodHandles(java.lang.invoke.MethodHandles) MissingResourceException(java.util.MissingResourceException) Set(java.util.Set) SearchLayout(io.imunity.furms.ui.components.administrators.SearchLayout) Collectors(java.util.stream.Collectors) ZoneId(java.time.ZoneId) ANGLE_DOWN(com.vaadin.flow.component.icon.VaadinIcon.ANGLE_DOWN) Checkbox(com.vaadin.flow.component.checkbox.Checkbox) ColumnTextAlign(com.vaadin.flow.component.grid.ColumnTextAlign) Optional(java.util.Optional) Dialog(com.vaadin.flow.component.dialog.Dialog) ViewHeaderLayout(io.imunity.furms.ui.components.ViewHeaderLayout) VaadinExceptionHandler.handleExceptions(io.imunity.furms.ui.utils.VaadinExceptionHandler.handleExceptions) ResourceGetter.getCurrentResourceId(io.imunity.furms.ui.utils.ResourceGetter.getCurrentResourceId) IconButton(io.imunity.furms.ui.components.IconButton) NotificationUtils.showErrorNotification(io.imunity.furms.ui.utils.NotificationUtils.showErrorNotification) FurmsDialog(io.imunity.furms.ui.components.FurmsDialog) HashMap(java.util.HashMap) REFRESH(com.vaadin.flow.component.icon.VaadinIcon.REFRESH) FurmsViewComponent(io.imunity.furms.ui.components.FurmsViewComponent) Grid(com.vaadin.flow.component.grid.Grid) UIContext(io.imunity.furms.ui.user_context.UIContext) Logger(org.slf4j.Logger) CENTER(com.vaadin.flow.component.orderedlayout.FlexComponent.Alignment.CENTER) ProgressBar(com.vaadin.flow.component.progressbar.ProgressBar) SiteId(io.imunity.furms.domain.sites.SiteId) TRASH(com.vaadin.flow.component.icon.VaadinIcon.TRASH) VerticalLayout(com.vaadin.flow.component.orderedlayout.VerticalLayout) GridActionMenu(io.imunity.furms.ui.components.GridActionMenu) GridActionsButtonLayout(io.imunity.furms.ui.components.GridActionsButtonLayout) Consumer(java.util.function.Consumer) Button(com.vaadin.flow.component.button.Button) DateTimeFormatter(java.time.format.DateTimeFormatter) Checkbox(com.vaadin.flow.component.checkbox.Checkbox) Label(com.vaadin.flow.component.html.Label) HorizontalLayout(com.vaadin.flow.component.orderedlayout.HorizontalLayout) Paragraph(com.vaadin.flow.component.html.Paragraph)

Example 20 with ComponentRenderer

use of com.vaadin.flow.data.renderer.ComponentRenderer in project docs by vaadin.

the class GridDynamicHeight method setupGrid.

private void setupGrid() {
    // tag::snippet[]
    grid = new Grid<>(Person.class, false);
    grid.setAllRowsVisible(true);
    // end::snippet[]
    grid.addColumn(Person::getFullName).setHeader("Name");
    grid.addColumn(Person::getEmail).setHeader("Email");
    grid.addColumn(person -> person.getAddress().getPhone()).setHeader("Phone");
    grid.addColumn(new ComponentRenderer<>(Button::new, (button, person) -> {
        button.addThemeVariants(ButtonVariant.LUMO_ICON, ButtonVariant.LUMO_ERROR, ButtonVariant.LUMO_TERTIARY);
        button.addClickListener(e -> this.removeInvitation(person));
        button.setIcon(new Icon(VaadinIcon.TRASH));
    })).setHeader("Manage");
    grid.setItems(invitedPeople);
    hint = new Div();
    hint.setText("No invitation has been sent");
    hint.getStyle().set("padding", "var(--lumo-size-l)").set("text-align", "center").set("font-style", "italic").set("color", "var(--lumo-contrast-70pct)");
    add(hint, grid);
}
Also used : ComponentRenderer(com.vaadin.flow.data.renderer.ComponentRenderer) DemoExporter(com.vaadin.demo.DemoExporter) DataService(com.vaadin.demo.domain.DataService) Grid(com.vaadin.flow.component.grid.Grid) ButtonVariant(com.vaadin.flow.component.button.ButtonVariant) HorizontalLayout(com.vaadin.flow.component.orderedlayout.HorizontalLayout) Div(com.vaadin.flow.component.html.Div) VaadinIcon(com.vaadin.flow.component.icon.VaadinIcon) ComboBox(com.vaadin.flow.component.combobox.ComboBox) ArrayList(java.util.ArrayList) Route(com.vaadin.flow.router.Route) List(java.util.List) Button(com.vaadin.flow.component.button.Button) Icon(com.vaadin.flow.component.icon.Icon) Person(com.vaadin.demo.domain.Person) Div(com.vaadin.flow.component.html.Div) ComponentRenderer(com.vaadin.flow.data.renderer.ComponentRenderer) Button(com.vaadin.flow.component.button.Button) VaadinIcon(com.vaadin.flow.component.icon.VaadinIcon) Icon(com.vaadin.flow.component.icon.Icon) Person(com.vaadin.demo.domain.Person)

Aggregations

ComponentRenderer (com.vaadin.flow.data.renderer.ComponentRenderer)49 Div (com.vaadin.flow.component.html.Div)33 Route (com.vaadin.flow.router.Route)30 Grid (com.vaadin.flow.component.grid.Grid)23 HorizontalLayout (com.vaadin.flow.component.orderedlayout.HorizontalLayout)20 List (java.util.List)19 Icon (com.vaadin.flow.component.icon.Icon)18 NativeButton (com.vaadin.flow.component.html.NativeButton)14 VaadinIcon (com.vaadin.flow.component.icon.VaadinIcon)14 TemplateRenderer (com.vaadin.flow.data.renderer.TemplateRenderer)14 Collectors (java.util.stream.Collectors)14 Label (com.vaadin.flow.component.html.Label)13 Span (com.vaadin.flow.component.html.Span)12 EnhancedButton (org.komunumo.ui.component.EnhancedButton)12 Component (com.vaadin.flow.component.Component)10 H2 (com.vaadin.flow.component.html.H2)10 ArrayList (java.util.ArrayList)10 Element (com.vaadin.flow.dom.Element)9 Collections (java.util.Collections)9 UI (com.vaadin.flow.component.UI)8