use of com.vaadin.flow.data.provider.SortDirection in project flow-components by vaadin.
the class TreeGridPreloadPage method setParameter.
@Override
public void setParameter(BeforeEvent event, @OptionalParameter String parameter) {
Location location = event.getLocation();
QueryParameters queryParameters = location.getQueryParameters();
// query parameter: pageSize
List<String> pageSize = queryParameters.getParameters().get("pageSize");
if (pageSize != null) {
grid.setPageSize(Integer.parseInt(pageSize.get(0)));
}
// query parameter: nodesPerLevel
List<String> nodesPerLevel = queryParameters.getParameters().get("nodesPerLevel");
// query parameter: depth
List<String> depth = queryParameters.getParameters().get("depth");
int dpNodesPerLevel = nodesPerLevel == null ? 3 : Integer.parseInt(nodesPerLevel.get(0));
int dpDepth = depth == null ? 4 : Integer.parseInt(depth.get(0));
setDataProvider(dpNodesPerLevel, dpDepth);
// query parameter: expandedRootIndexes
List<String> expandedRootIndexes = queryParameters.getParameters().get("expandedRootIndexes");
if (expandedRootIndexes != null) {
List<HierarchicalTestBean> expandedRootItems = Arrays.stream(expandedRootIndexes.get(0).split(",")).map(Integer::parseInt).map(expandedRootIndex -> new HierarchicalTestBean(null, 0, expandedRootIndex)).collect(java.util.stream.Collectors.toList());
grid.expandRecursively(expandedRootItems, Integer.MAX_VALUE);
}
// query parameter: sortDirection
List<String> sortDirection = queryParameters.getParameters().get("sortDirection");
if (sortDirection != null) {
SortDirection direction = SortDirection.valueOf(sortDirection.get(0).toUpperCase());
GridSortOrderBuilder<HierarchicalTestBean> sorting = new GridSortOrderBuilder<HierarchicalTestBean>();
Column<HierarchicalTestBean> column = grid.getColumns().get(0);
if (direction == SortDirection.ASCENDING) {
grid.sort(sorting.thenAsc(column).build());
} else {
grid.sort(sorting.thenDesc(column).build());
}
}
}
Aggregations