Я создал пользовательский поставщик контента, который реализует ITreeContentProvider
, и мою пользовательскую модель, похожую на эту: Vogella Tutorial JFace, где у него есть категории, а задачи и задачи хранятся как дочерние элементы категорий в виде списка в классе Category. Я использую диалог eclipse CheckedTreeSelectionDialog
, и он должен быть таким же, как любой диалог дерева, и я расширил его, чтобы иметь возможность получать проверенные элементы на карте, но по какой-то причине я могу получить элемент дерева уровня 1, но не их дочерние элементы, и я не могу понять Зачем.
public void createMapOfCheckedItems() {
mapOfCheckedElements = new HashMap<Object, List<Object>>();
for (TreeItem level1 : getTreeViewer().getTree().getItems()) {
if (level1.getChecked()) {
List<Object> checkedChildren = new ArrayList<Object>();
for (TreeItem level2 : level1.getItems()) {
if (level2.getChecked()) {
checkedChildren.add(level2.getData());
}
}
mapOfCheckedElements.put(level1.getData(), checkedChildren);
}
}
}
Код приведен выше, но level1.getItems()
возвращает пустой элемент дерева, но в диалоговом окне выбора правильно отображаются родители и дети.
getTreeViewer()
. - person tkotisis   schedule 15.12.2012