如何在ColumnLabelProvider文本之前和之前添加图像

时间:2015-06-28 11:53:05

标签: java swt jface

我尝试过将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,如下所示

enter image description here

但是当我在节点上鼠标悬停时,只有第一个图像和文本突出显示,并且工具提示正在为它们而来。我想突出显示第三张图片,并希望像其他选择一样带上工具提示。

0 个答案:

没有答案