Example usage for com.vaadin.data.provider AbstractBackEndHierarchicalDataProvider AbstractBackEndHierarchicalDataProvider

List of usage examples for com.vaadin.data.provider AbstractBackEndHierarchicalDataProvider AbstractBackEndHierarchicalDataProvider

Introduction

In this page you can find the example usage for com.vaadin.data.provider AbstractBackEndHierarchicalDataProvider AbstractBackEndHierarchicalDataProvider.

Prototype

AbstractBackEndHierarchicalDataProvider

Source Link

Usage

From source file:org.jpos.qi.minigl.AccountsHelper.java

License:Open Source License

@Override
public DataProvider getDataProvider() {
    Map<String, Boolean> orders = new HashMap<>();
    HierarchicalDataProvider dataProvider = new AbstractBackEndHierarchicalDataProvider() {
        @Override/* w w w .  j  a va  2  s  .  c o m*/
        protected Stream fetchChildrenFromBackEnd(HierarchicalQuery query) {
            int offset = query.getOffset();
            int limit = query.getLimit();
            Account parent = (Account) query.getParent();
            Iterator it = query.getSortOrders().iterator();
            while (it.hasNext()) {
                QuerySortOrder order = (QuerySortOrder) it.next();
                orders.put(order.getSorted(), order.getDirection() == SortDirection.DESCENDING);
            }
            try {
                return getAllChildren(offset, limit, orders, parent);
            } catch (Exception e) {
                getApp().getLog().error(e);
                return null;
            }
        }

        @Override
        public int getChildCount(HierarchicalQuery query) {
            try {
                if (query.getParent() != null)
                    return getChildrenCount((Account) query.getParent());
                return getItemCount();
            } catch (Exception e) {
                getApp().getLog().error(e);
                return 0;
            }
        }

        @Override
        public boolean hasChildren(Object item) {
            try {
                return hasChildrenAccounts((Account) item);
            } catch (Exception e) {
                getApp().getLog().error(e);
                return false;
            }
        }
    };
    return dataProvider;
}