我尝试过将ColumnLabelProvider扩展并将下面的代码用于复选框树查看器
getTree().addListener(SWT.PaintItem, new Listener() {
@Override
public void handleEvent(Event event) {
TreeItem treeItem = (TreeItem) event.item;
ConfigTreeViewNode item = (ConfigTreeViewNode) treeItem.getData();
if (!(item instanceof ConfigTreeViewNodeConfig)) {
return;
}
ConfigTreeViewNodeConfig configNode = (ConfigTreeViewNodeConfig) item;
if (configNode.getValidationMessage() == null) {
return; // not evaluated yet
}
ConfigTreeViewLabelProvider labelProvider = (ConfigTreeViewLabelProvider) getLabelProvider();
Image image = labelProvider.getConversionValidationStateImage(configNode.getValidationMessage());
int x = event.x + event.width + 2; // give small margin
int itemHeight = getTree().getItemHeight();
int imageHeight = image.getBounds().height;
int y = event.y + (itemHeight - imageHeight) / 2;
event.gc.drawImage(image, x, y);
}
});
之后我能够看到ImageICON LabelText ImageICON,如下所示
但是当我在节点上鼠标悬停时,只有第一个图像和文本突出显示,并且工具提示正在为它们而来。我想突出显示第三张图片,并希望像其他选择一样带上工具提示。