在TableViewer中使用StyledCellLabelProvider杀死了我的工具提示

时间:2015-06-22 09:49:51

标签: eclipse-plugin swt tooltip tableviewer

我的Eclipse插件中有一个TableViewer。

当我刚刚使用常规标签提供商时,我的工具提示工作得很漂亮:

Tootlips work

然而,当我切换到让我的LabelProvider实现IStyledLabelProvider时,我的工具提示变得混乱:

Tooltips work

以下是创建StyledString

的代码
    @Override
public StyledString getStyledText(final Object element) {
    if( !(element instanceof MyInterface<?>) ) {
        return null;
    }

    final String elemText = getColumnText(element, this.columnIndex);
    final StyledString styledString = new StyledString(elemText == null ? "" : elemText);
    if( !(element instanceof MyObject) ) {
        return styledString;
    }

    final MyObject settingElement = (MyObject) element;
    // grayed out text
    if( settingElement.shouldBeGray() ) {
        styledString.setStyle(0, elemText.length(), AdaptabilityStyles.GRAY_STYLER;
    } else if( !settingElement.shouldBeBlue() ) {
        styledString.setStyle(0, elemText.length(), AdaptabilityStyles.BLUE_STYLER);
    }

    return styledString;
}

getTooltTipText()

    @Override
public String getToolTipText(final Object element) {
    return getColumnText(element, this.columnIndex);
}

我做错了什么?

1 个答案:

答案 0 :(得分:1)

在我写这个问题时,我想引用一个与工具提示相关的我熟悉的bug report。我再次查看了错误报告,发现了以下内容:

  

现在,我只是试试这个:   ColumnViewerToolTipSupport.enableFor(commonViewer)

当我创建我的查看器时,我没有调用该方法。当我尝试这个时,我的工具提示又回来了(虽然与以前略有不同。

Tooltips working again