/** * Fetch all items from the given data provider. * * @since 8.1 * @param dataProvider * the data provider to fetch from * @return all items in this data provider */ private Stream<T> fetchAll(DataProvider<T, ?> dataProvider) { return dataProvider.fetch(new Query<>()); }
/** * Fetches a list of items from the DataProvider. * * @param offset * the starting index of the range * @param limit * the max number of results * @return the list of items in given range * * @since 8.1 */ @SuppressWarnings({ "rawtypes", "unchecked" }) public List<T> fetchItemsWithRange(int offset, int limit) { return (List<T>) getDataProvider().fetch(new Query(offset, limit, backEndSorting, inMemorySorting, filter)) .collect(Collectors.toList()); }
/** * Writes the data source items to a design. Hierarchical select components * should override this method to only write the root items. * * @param design * the element into which to insert the items * @param context * the DesignContext instance used in writing */ protected void writeItems(Element design, DesignContext context) { internalGetDataProvider().fetch(new Query<>()) .forEach(item -> writeItem(design, item, context)); }
/** * Writes the data contained in this grid. Used when serializing a grid to * its declarative representation, if * {@link DesignContext#shouldWriteData(Component)} returns {@code true} for * the grid that is being written. * * @since 8.1 * * @param body * the body element to write the declarative representation of * data to * @param designContext * the design context * * @since 8.1 */ protected void writeData(Element body, DesignContext designContext) { getDataProvider().fetch(new Query<>()) .forEach(item -> writeRow(body, item, designContext)); }
@Override public Stream<T> fetch(Query<T, C> t) { if (t instanceof HierarchicalQuery<?, ?>) { return dataProvider.fetch(new HierarchicalQuery<>( t.getOffset(), t.getLimit(), t.getSortOrders(), t.getInMemorySorting(), getFilter(t), ((HierarchicalQuery<T, C>) t).getParent())); } throw new IllegalArgumentException( "Hierarchical data provider doesn't support non-hierarchical queries"); } };
@Override public Stream<T> fetch(Query<T, F> t) { return dataProvider.fetch(new Query<>(t.getOffset(), t.getLimit(), t.getSortOrders(), t.getInMemorySorting(), getFilter(t))); }
@Override public void selectAll() { getDataProvider().ifPresent(dp -> { Stream<ITEM> allItemsStream = dp.fetch(new Query<>()); LinkedHashSet<ITEM> allItems = new LinkedHashSet<>(); allItemsStream.forEach(allItems::add); getInternalField().setValue(allItems); }); }
@Override public Stream<T> fetchChildren(HierarchicalQuery<T, F> query) { return dataProvider.fetch(new HierarchicalQuery<>( query.getOffset(), query.getLimit(), query.getSortOrders(), query.getInMemorySorting(), getFilter(query), query.getParent())); }
private HorizontalLayout createFilters() { HorizontalLayout controls = new HorizontalLayout(); controls.setWidth("100%"); journals = new JournalsCombo(true); journals.setValue(journals.getDataProvider().fetch(new Query<>()).findFirst().orElse(null)); controls.addComponents(journals, dateRangeComponent); controls.setComponentAlignment(dateRangeComponent, Alignment.MIDDLE_LEFT); controls.setComponentAlignment(journals, Alignment.MIDDLE_RIGHT); controls.setExpandRatio(journals, 0f); controls.setExpandRatio(dateRangeComponent, 1f); controls.setMargin(new MarginInfo(false,true,true,true)); controls.setSpacing(true); return controls; }
@Override public void setGridGetters() { Grid<Consumer> g = getGrid(); g.addColumn(Consumer::getId).setId("id"); g.addColumn(consumer -> consumer.getRolesAsString()).setId("roles"); g.addColumn(Consumer::getStartDate).setId("startDate"); g.addColumn(Consumer::getEndDate).setId("endDate"); g.addColumn(consumer -> consumer.getUser().getNickAndId()).setId("user"); g.addColumn(Consumer::isActive).setId("active"); g.addColumn(Consumer::isDeleted).setId("deleted"); //select first item on user combobox userComboBox.setValue(userComboBox.getDataProvider().fetch(new Query<>()).findFirst().orElse(null)); }