Многостолбцовая сортировка GWT с AsyncDataProvider

У меня есть таблица содержит 3 столбца, когда пользователь нажимает в одном из них таблица должна быть отсортирована, я использую AsyncDataProvider, сортировка для первого столбца работает нормально, поэтому я должен сделать то же самое для других столбцов. это код:

AsyncDataProvider<PermisoUI> providerPerfiles = new AsyncDataProvider<PermisoUI>() {

    @Override
    protected void onRangeChanged(HasData<PermisoUI> display) {

        if(sortedPermiso) {
            sortedPermiso=false;
            class TipoCuotasComparator implements Comparator<Object> {
                public int compare(Object l1, Object l2) {
                    PermisoUI o1 = (PermisoUI) l1;
                    PermisoUI o2 = (PermisoUI) l2;
                    return o2.getId().compareTo(o1.getId());

                }
            }
            Collections.sort(listPermisos, new TipoCuotasComparator());
        }else {
            sortedPermiso = true;
            class TipoCuotasComparator implements Comparator<Object> {
                public int compare(Object l1, Object l2) {
                    PermisoUI o1 = (PermisoUI) l1;
                    PermisoUI o2 = (PermisoUI) l2;
                    return o1.getId().compareTo(o2.getId());
                }
            }
            Collections.sort(listPermisos, new TipoCuotasComparator());
        }

        int start = display.getVisibleRange().getStart();
        int end = start + display.getVisibleRange().getLength();
        end = end >= listPermisos.size() ? listPermisos.size() : end;
        List<PermisoUI> sub = listPermisos.subList(start, end);
        updateRowData(start, sub);

    }
};



providerPerfiles.addDataDisplay(CellTblPermisos);

//Sorting Column
AsyncHandler columnSortAplHandler = new AsyncHandler(CellTblPermisos);
CellTblPermisos.addColumnSortHandler(columnSortAplHandler);
CellTblPermisos.getColumnSortList().push(permisoColumn);


    providerPerfiles.addDataDisplay(CellTblPermisos);
providerPerfiles.updateRowCount(listPermisos.size(), true);
PPerfil.clear();
PPerfil.add(CellTblPermisos);

0 ответов

Другие вопросы по тегам