Блокировка нотификации при обновлении контейнера

Добрый день!

Кто-нибудь сталкивался с необходимость блокировать нотификацию при обновлении контейнера. Есть что-нибудь уже готов в хелперах ваадина? А то пока довольствуюсь своим велосипедом: https://vaadin.com/forum#!/thread/8121726

Заранее спасибо!

Не думаю что есть в core что-то подобное просто потому, что это не имеет большого смысла.
В вашей реализации Вы после того как обновили контейнер бросаете событие ItemSetChangeEvent.
Собственно, ввиду того, что неизвестно как именно обновлялся конейнер, ничего более точного там кинуть и нельзя.
Но по этим же причинам обработка такого события не является умной (по крайней мере на данный момент).
К примеру, в таблице, получение такого события приводит к сбросу кеша и полной перерисовке таблицы. Я думаю, что это общий подход во всех UI контейнерах, использующих Data Source контейнер.
А сброс кеша и полная перерисовка эквивалентна простой замене контейнера новым.
Так что существующий велосипед - создать новый контейнер, заполнить его данными из старого и изменениями и потом установить в UI компоненту. Пока контейнер не установлен, события от него не слушаются.

Вообще, вся эта возня была затеяна ради FilterTable, который сбрасывает фильтры при установке нового источника данных (что, в принципе, логично, поскольку структура источника может изменится, но не в моем случае). Поэтому пришлось городить что-то вроде ContainerLocker. Пришлось к нему добавить еще и сохранение soft order information, поскольку сортировка IndexedContainer необратимая, а перезаливка контейнера не знает об установленном ранее порядке.

А так, конечно, взял новый контейнер и вперед и вопросов бы не было.

OK, понятно.