use of io.imunity.furms.ui.components.DenseGrid 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;
}
use of io.imunity.furms.ui.components.DenseGrid in project furms by unity-idm.
the class AlarmsView method createAlarmGrid.
private Grid<AlarmGridModel> createAlarmGrid() {
Grid<AlarmGridModel> grid = new DenseGrid<>(AlarmGridModel.class);
grid.addComponentColumn(model -> new RouterLink(model.name, AlarmFormView.class, model.id.id.toString())).setHeader(getTranslation("view.project-admin.alarms.page.grid.1")).setSortable(true).setComparator(x -> x.name.toLowerCase());
grid.addColumn(model -> model.allocationName).setHeader(getTranslation("view.project-admin.alarms.page.grid.2")).setSortable(true);
grid.addColumn(model -> model.threshold + "%").setHeader(getTranslation("view.project-admin.alarms.page.grid.3")).setSortable(true);
grid.addComponentColumn(model -> new DisableCheckbox(model.allUsers)).setHeader(getTranslation("view.project-admin.alarms.page.grid.4")).setSortable(true).setComparator(model -> model.allUsers);
grid.addComponentColumn(model -> {
Label label = new Label(model.users.stream().limit(3).collect(Collectors.joining()) + (model.users.size() > 3 ? "..." : ""));
Tooltip tooltip = new Tooltip();
tooltip.add(String.join(", ", model.users));
tooltip.attachToComponent(label);
getContent().add(tooltip);
return label;
}).setHeader(getTranslation("view.project-admin.alarms.page.grid.5")).setSortable(true).setComparator(model -> model.users.toString());
grid.addComponentColumn(this::createLastColumnContent).setHeader(getTranslation("view.project-admin.alarms.page.grid.6")).setTextAlign(ColumnTextAlign.END);
grid.setClassNameGenerator(model -> model.fired ? "light-red-row" : "usual-row");
return grid;
}
use of io.imunity.furms.ui.components.DenseGrid 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;
}
use of io.imunity.furms.ui.components.DenseGrid 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;
}
use of io.imunity.furms.ui.components.DenseGrid in project furms by unity-idm.
the class ProjectsView method createProjectGrid.
private Grid<ProjectGridModel> createProjectGrid() {
Grid<ProjectGridModel> grid = new DenseGrid<>(ProjectGridModel.class);
Grid.Column<ProjectGridModel> firstColumn = grid.addComponentColumn(project -> {
Component component = new Span(project.name);
if (project.status.equals(ACTIVE))
component = new RouterLink(project.name, ProjectView.class, project.id);
return component;
}).setHeader(getTranslation("view.user-settings.projects.grid.column.1")).setSortable(true).setComparator(comparing(project -> project.name)).setComparator(project -> project.name.toLowerCase());
grid.addColumn(project -> project.description).setHeader(getTranslation("view.user-settings.projects.grid.column.2")).setSortable(true);
grid.addColumn(project -> getTranslation(project.status.gridText)).setHeader(getTranslation("view.user-settings.projects.grid.column.3")).setTextAlign(ColumnTextAlign.END).setSortable(true);
grid.addComponentColumn(this::createLastColumnContent).setHeader(getTranslation("view.user-settings.projects.grid.column.4")).setTextAlign(ColumnTextAlign.END);
grid.sort(ImmutableList.of(new GridSortOrder<>(firstColumn, SortDirection.ASCENDING)));
return grid;
}
Aggregations