2010-06-06 57 views
2

这个问题听起来可能不重要,但我正在努力解决这个问题,所以,如果可以,请帮助。所以,这里是:我使用CheckboxTreeViewer有一些很好的理由。我已经谷歌 - 它为一些类的用途,我目前能够检查/取消选中所有节点的所有儿童,并通过自定义实施StyledCellLabelProvider供应商实时搜索后保留选择。迄今为止都很好。但是,到目前为止,我无法在显示小部件并调用查看器的setInput()方法之后以编程方式选择树查看器的一个或多个元素。Jface的CheckboxTreeViewer如何设置初始选择

所以,让我们假设,例如,该树将有10个主节点,并在节点5个叶子6.我的问题是如何设置的3叶的选中状态?

谢谢你。

回答

0

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

+0

感谢ü的答复。不幸的是,正如在指定链接中创建的代码所证实的那样,使用checkboxtreeviewer对于我的口味来说过于复杂和模糊。相反,我已经适应了一个普通的treeviewer允许各种选择模式,我已经创建了一个文本区域来启用该树中的搜索。搜索是在观看者的模型上执行的,并且选择模式在观看者的控制(常规树)上得到增强。那么问题就解决了,而且我也有强烈的感觉,不要再使用checkboxtreeviewer:D。干杯。 – hypercube 2010-09-02 06:22:47

3

您应该使用树查看器的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; 
    } 

}