我正在使用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/

10-09 07:06
查看更多