/** * Wraps this data provider to create a data provider that supports * programmatically setting a filter but no filtering through the query. * * @see #withConfigurableFilter(SerializableBiFunction) * @see ConfigurableFilterDataProvider#setFilter(Object) * * @return a data provider with a configurable filter, not <code>null</code> */ public default ConfigurableFilterDataProvider<T, Void, F> withConfigurableFilter() { return withConfigurableFilter((queryFilter, configuredFilter) -> { assert queryFilter == null : "Filter from Void query must be null"; return configuredFilter; }); }
@Override public DataProvider getDataProvider() { Map<String,Boolean> orders = new HashMap<>(); DataProvider dataProvider = DataProvider.fromCallbacks( (CallbackDataProvider.FetchCallback) query -> { int offset = query.getOffset(); int limit = query.getLimit(); for (Object o : query.getSortOrders()) { QuerySortOrder order = (QuerySortOrder) o; orders.put(order.getSorted(), order.getDirection() == SortDirection.DESCENDING); } DateRange dateRange = (DateRange) query.getFilter().orElse(null); try { return getAll(offset,limit,orders,defaultJournalId,dateRange); } catch (Exception e) { getApp().getLog().error(e); return null; } }, (CallbackDataProvider.CountCallback) query -> { DateRange dateRange = (DateRange) query.getFilter().orElse(null); try { return getItemCount(defaultJournalId,dateRange); } catch (Exception e) { getApp().getLog().error(e); return 0; } }); return (ConfigurableFilterDataProvider<GLTransaction,Void,DateRange>) dataProvider.withConfigurableFilter(); }
@Override public DataProvider getDataProvider() { Map<String,Boolean> orders = new HashMap<>(); DataProvider dataProvider = DataProvider.fromCallbacks( (CallbackDataProvider.FetchCallback) query -> { int offset = query.getOffset(); int limit = query.getLimit(); for (Object o : query.getSortOrders()) { QuerySortOrder order = (QuerySortOrder) o; orders.put(order.getSorted(), order.getDirection() == SortDirection.DESCENDING); } User user = (User) query.getFilter().orElse(null); try { return getAll(offset,limit,orders,user); } catch (Exception e) { getApp().getLog().error(e); return null; } }, (CallbackDataProvider.CountCallback) query -> { User user = (User) query.getFilter().orElse(null); try { return getItemCount(user); } catch (Exception e) { getApp().getLog().error(e); return 0; } }); return (ConfigurableFilterDataProvider<Consumer,Void,User>) dataProvider.withConfigurableFilter(); }