Эти два примера бесполезны и сбивают с толку.
Использование ListHandlers и DataProviders также не очень полезно, когда показано, как использовать таблицы Cell/Grid.
В примерах запутывают и скрывают одну простую характеристику таблиц GWT Cell/Grid - вам просто нужно заменять и кормить список в таблицу каждый раз, когда данные меняются в любом случае.
Использование списков ListHandlers, обработчиков Async и DataProviders усложняет довольно простой процесс, бросая целую пушистую бесполезную абстрактную элегантность. По сути, эти абстрактные и отвратительные структуры сами толкают и возвращают записи в список таблиц. Не обращайте внимания на использование таймера.
Можете также взять список столиков своими быками и сделать это самостоятельно - гораздо проще. Я точно не помню, как я это делаю, потому что у меня нет моего кода.
Что вам нужно сделать, это сохранить буферную копию списка записей. Это список записей, которые будут отображаться в таблице.
Неважно, независимо от того, выполняете ли вы асинхронное или иное - любое изменение данных, которые вы хотите сделать, должно быть выполнено на этой буферной копии. Ваш GWT-RPC должен обновить этот буфер.
Когда таблица запрашивает восходящую сортировку, ваш компаратор/фильтратор будет производить восходящую копию вашего буферизованного списка для замены данных в таблице с помощью setRowData. Аналогично, когда таблица запрашивает нисходящую или для специализированной фильтрации.
Использование DataProvider полезно, если вы хотите разрешить ему управлять поисковым вызовом для вас. Гораздо проще обрабатывать GWT-RPC самостоятельно. DataProvider должен обрабатывать сортировку и фильтрацию, запрашивая сервер для отправки ему нового списка, который сортируется/фильтруется в соответствии с пожеланиями таблицы. Почему вы хотите использовать сетевой трафик, позволяя серверу управлять фильтрацией/сортировкой, если у вас не более 10 страниц записей.
Итак, для простого примера экспериментов с 50 примерами выполните управление списком буферов самостоятельно.
Оставьте свой код? – DTing