我想在我的treeviewer中禁用(仅虚拟)某些特定节点,但它似乎对我的节点没有影响。我也尝试设置一个也不起作用的背景。关于这个的任何想法?
private void setSelectedElements(TreeItem[] treeItems) {
for (TreeItem item : treeItems) {
Object obj = item.getData();
if (item.getParentItem() != null) {
Object parentElement = item.getParentItem().getData();
if (parentElement instanceof Mandatory) {
setChecked(item);
Display display = Display.getCurrent();
item.setGrayed(true);
item.setBackground(display.getSystemColor(SWT.COLOR_GRAY));
}
}
setSelectedElements(item.getItems());
}
}
答案 0 :(得分:0)
setGrayed
用于更改复选框树或表中复选框的状态。它不会更改树项颜色。来自setGrayed
的JavaDoc:
设置此项目的复选框的灰色状态。仅当使用SWT.CHECK样式创建树时,此状态更改才适用。
如果要更改树项目的颜色,请使用实现LabelProvider
的{{1}}或从IColorProvider
派生的标签提供程序。