我正在使用CheckedTreeSelectionDialog来实现某种重构。重构是在大量对象上执行的,因此选择树的每个根节点都是对象,并且每个对象都有建议的修改作为子节点。例如,
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/