java - 从 CheckedTreeSelectionDialog 获取选定元素的建议

标签 java eclipse-plugin

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

相关文章:

java - 如何删除android中的__MACOSX文件夹?

java - 在catch block 中处理异常?

java - 在 AtomicBoolean 上同步?

Java - 创建 PNG/文本 Logo 并将其绘制到 JFrame

java - Eclipse 插件开发 : How to get current bundle version?

java - Eclipse 比较编辑器 : Ignoring "$Id:" Lines

Java:处理网络协议(protocol)

maven - 第谷:Bundle X - 缺少约束:Bundle-RequiredExecutionEnvironment:JavaSE-1.7

java - 有没有办法在 eclipse 插件中包含常规的 Maven 依赖项

java - IWorkspaceRoot.getFileForLocation() 返回 null