我创建了一个自定义内容提供程序,它实现ITreeContentProvider
了我的自定义模型,类似于:Vogella Tutorial JFace,它有类别和待办事项,待办事项作为类别的子项存储为类别中的列表。我正在使用 Eclipse 对话框CheckedTreeSelectionDialog
,它应该与任何树对话框相同,我对其进行了扩展,以便能够在地图中获取选中的元素,但由于某种原因,我可以获取 level1 的树项,但不能获取它们的子项,我不明白为什么.
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()
返回一个空树项,但选择对话框正确显示了父母和孩子。