我正在使用 CheckedTreeSelectionDialog 来实现某种重构。重构是在大量对象上执行的,因此选择树的每个根节点都是一个对象,并且每个对象都有建议的修改作为子节点。例如,
选中树选择对话框:
ObjectA
---------- Remove attribute attA1
---------- Remove attribute attA2
Object B
---------- Remove attribute attB1
.
.
.
我通过这种方式获取选定的元素:
Object[] result = dialog.getResult();
并且,如果我选择之前显示的所有 5 个元素,我将获得列表:
ObjectA
attA1
attA2
ObjectB
attB1
我想我会得到某种树,例如,我可以在其中获取对象“ObjectA”并查看选择了它的哪个子对象。
我这样做对吗?
谢谢!
最佳答案
或者,您可以获取树查看器,并从中获取选中的元素。
Map<Object, List<Object>> mapOfCheckedElements = new HashMap<Object, List<Object>>();
for (TreeItem level1 : checkBoxTreeViewer.getTree().getItems()) {
if (level1.getChecked()) {
List<Object> checkedChildren = new ArrayList<Object>();
for (TreeItem level2 : level1.getItems()) {
if (level2.getChecked()) {
checkedChildren.add(level2);
}
}
mapOfCheckedElements.put(level1, checkedChildren);
}
}
关于java - 从 CheckedTreeSelectionDialog 获取选定元素的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9397680/