#gwt #select #cellbrowser
#gwt #выберите #cellbrowser
Вопрос:
почему-то у меня такое чувство, что я скучаю по лесу за деревьями. У меня есть CellBrowser, заполненный категориями, и у меня есть диалоговое окно поиска, чтобы найти категории по имени. Если я сейчас выберу категорию в диалоговом окне поиска, я также хочу, чтобы она была выбрана в браузере ячеек.
Что я уже могу сделать, так это найти узел в дереве категорий. У меня также есть путь от корневого узла к листу. Я могу открывать узлы до тех пор, пока не будет выбран лист (getCellBrowser().getRootTreeNode().setChildOpen(i, true). Но как мне выбрать сам лист? И, честно говоря, это правильный способ сделать это? (Я в этом как-то сомневаюсь)
Приветствую Ole
Ответ №1:
Выбор объекта в CellWidgets может быть выполнен с помощью selectionModel .
Предполагая, что вы определили selectionModel (т.Е. SingleSelectionModel) для вашего CellBrowser / TreeViewModel, вы можете просто выбрать узел в CellBrowser, вызвав:
selectionModel.setSelected(MyObject, true);
MyObject — это объект / тип, который отображается как узел в вашем CellBrowser.
Обратите внимание, что для каждого уровня CellBrowser могут быть разные типы / объекты.
selectionModel будет использовать либо KeyProvider, либо функцию equals для выбора объекта.
Комментарии:
1. Привет, timeu, отлично, это сработало. Хорошо, не идеально, потому что мне все еще приходится довольно неудобно перемещаться по дереву и открывать дочерний элемент вручную. Но все равно сработало, большое спасибо.
2. @Ole: Рад, что смог помочь. Да, у меня была такая же проблема с CellTree. Мне пришлось создать рекурсивную функцию для открытия родительских узлов, пока не будет виден выбранный мной объект. Было бы неплохо, если бы команда GWT включила метод, который автоматически выполнял бы это за вас.