【问题标题】:Jface's CheckboxTreeViewer how to set initial selectionJface的CheckboxTreeViewer如何设置初始选择
【发布时间】:2023-03-12 21:02:01
【问题描述】:

这个问题可能听起来微不足道,但我正在努力解决这个问题,所以,如果可以,请提供帮助。所以,这里是:我使用CheckboxTreeViewer 有一些很好的理由。我已经用谷歌搜索了一些类的用法,我目前能够检查/取消选中所选节点的所有子节点,并在使用StyledCellLabelProvider 提供程序的自定义实现进行实时搜索后保留选择。到目前为止一切都很好。但是,到目前为止,在我显示小部件并调用查看器的setInput() 方法后,我无法以编程方式选择树查看器的一个或多个元素。

因此,假设树将有 10 个主节点,节点 6 上有 5 个叶子。我的问题是如何设置第 3 个叶子的选中状态?

谢谢你。

【问题讨论】:

    标签: java checkbox swt jface viewer


    【解决方案1】:

    您应该为树查看器使用 ICheckedStateProvider。例如:

    checkboxTreeViewer.setCheckStateProvider(new TreeCheckedStatedProvider());
    
    private class TreeCheckedStatedProvider implements ICheckStateProvider {
    
        @Override
        public boolean isChecked(Object element) {
            return false;
        }
    
        @Override
        public boolean isGrayed(Object element) {
            return false;
        }
    
    }
    

    【讨论】:

      【解决方案2】:

      看看这个:http://akravets.blogspot.com/2009/08/disabling-nodes-in-checkboxtreeviewer.html,可能会有所帮助。它可能不是您正在寻找的 100% 解决方案,但我解释了如何跳过一些节点。

      【讨论】:

      • 感谢您的回复。不幸的是,正如在指定链接上创建的代码所证实的那样,使用 checkboxtreeviewer 对我来说太复杂和模糊了。相反,我已经调整了一个常规的 treeviewer 以允许各种选择模式,并且我创建了一个文本区域来启用在该树中的搜索。搜索是在查看器的模型上执行的,并且选择模式在查看器的控件(常规树)上得到了增强。然后问题解决了,我也有一种强烈的感觉,不要再次使用 checkboxtreeviewer :D。干杯。
      猜你喜欢
      • 2019-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 2013-11-22
      • 2012-09-17
      • 2013-11-10
      • 1970-01-01
      相关资源
      最近更新 更多