Событие для «эта строка была только что загружена» в каркасе ячейки GWT - PullRequest
0 голосов
/ 17 апреля 2011

У меня есть список идентификаторов строк, которые должны быть выбраны, но не фактические объекты, которые будут выбраны. Например, я знаю, что должны быть выбраны пользователи 16 и 25, но у меня нет экземпляра, представляющего их. Это может быть потому, что они находятся на другой странице данных, которые я еще не загрузил.

Я хочу иметь возможность выбирать этих пользователей программно, даже если их данные еще не загружены. Я реализую функцию с именем setSelectedIds(), и она отлично работает - я сканирую все видимые объекты, и если их идентификатор совпадает с одним из идентификаторов в моем наборе, я устанавливаю его Выбранным. Аналогичным образом, если пользователь изменяет выделение с помощью человеческого интерфейса, я перехватываю SelectionChangeEvent и определяю, следует ли добавить или удалить идентификатор в мой список поддержки идентификаторов.

Актуальный вопрос:

Есть ли событие, которое всегда срабатывает, когда данные загружаются через updateRowData()? Единственное, чего не хватает в моей реализации, - это способа обработки загрузки новых данных. Мне нужно получать уведомления при загрузке новых данных, чтобы я мог решить, выбрать их или нет. RangeChangeEvents произойдет в ближайшее время - эти обработчики запускаются до загрузки данных, а selectionModel.getSelected () возвращает некоторые нулевые объекты. RowCountChangeEvents происходит только при изменении общего количества строк. Чего мне не хватает?

1 Ответ

1 голос
/ 19 апреля 2011

Не можете ли вы реализовать свой собственный SelectionModel?Когда его спрашивают, является ли объект isSelected, он сравнивает свой идентификатор со списком выбранных идентификаторов.Вы даже можете обобщить его, используя ключ объекта (заданный ProvidesKey), а не жестко запрограммированный getId.

...