Как заполнить CellTree данными из серверной части - PullRequest
4 голосов
/ 20 июля 2011

CellTree имеет конструктор, который принимает TreeModel.Я не могу установить модель дерева с помощью установщика.

Я получаю данные для дерева с помощью асинхронного вызова RPC, этот вызов запускается при создании презентатора, соответствующего представлению, которое содержит дерево, ноэто означает, что представление также создается без древовидной модели, заполненной необходимыми данными.

Когда данные возвращаются, я устанавливаю корневой узел в модели, но модель уже создана без корня, поэтомуобновление не получено ...

Я пошел по этому пути, потому что хочу лучше контролировать рендеринг узлов дерева.

Два возможных решения ...

  1. Удерживайте визуализацию вида, пока выборка не вернется, чтобы при создании дерева модель имела всю информацию - Как мне это сделать?

  2. Как только данные вернутся и будут установлены на модели, скажите дереву обновить ... Как мне это сделать?

Ответы [ 2 ]

3 голосов
/ 20 июля 2011
  1. Когда вы создаете представление, вы должны настроить CellTree свыше ListDataProvider .
  2. Когда вы получаете вызов RPC для сброса данных, вы обновляете только ListDataProvider,Ваше CellTree будет обновлено и автоматически отрендерено.

Пожалуйста, прочитайте Предоставление динамических данных Руководства разработчика - Виджеты ячеек.Вот быстрая цитата:

ListDataProvider связывает ваш виджет ячейки с java.util.List.Любые изменения во внутреннем списке, к которым можно получить доступ через getList (), будут отражены в представлениях.Представления обновляются в конце текущего блока событий, поэтому вы можете вносить несколько синхронных изменений, не вызывая многократного обновления представлений.

0 голосов
/ 21 июля 2011

Использование ListDataProvider или AsyncDataProvider (если вы хотите динамически обновлять таблицу с данными, а не загружать все сразу) отлично подойдет для вас.

...