这个问题可能听起来微不足道,但我正在努力解决这个问题,所以,如果可以,请帮忙。所以,这里是:我使用CheckboxTreeViewer
有充分的理由。我已经google-it用于某些类用法,我目前能够检查/取消选中所选节点的所有子节点,并在使用StyledCellLabelProvider
提供程序的自定义实现进行实时搜索后保留选择。到目前为止都很好。但是,到目前为止,在显示窗口小部件并调用查看器的setInput()
方法后,我无法以编程方式选择树查看器的一个或多个元素。
所以,让我们假设例如树将有10个主节点,节点6上有5个叶子。我的问题是如何设置第3叶子的检查状态?
谢谢你。
答案 0 :(得分:4)
您应该为树查看器使用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;
}
}
答案 1 :(得分:0)
看看这个:http://akravets.blogspot.com/2009/08/disabling-nodes-in-checkboxtreeviewer.html,可能会有所帮助。它可能不是100%的解决方案,但我解释了如何跳过一些节点。