我的Eclipse插件中有一个TableViewer。
当我刚刚使用常规标签提供商时,我的工具提示工作得很漂亮:
然而,当我切换到让我的LabelProvider实现IStyledLabelProvider
时,我的工具提示变得混乱:
以下是创建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);
}
我做错了什么?
答案 0 :(得分:1)
在我写这个问题时,我想引用一个与工具提示相关的我熟悉的bug report。我再次查看了错误报告,发现了以下内容:
现在,我只是试试这个: ColumnViewerToolTipSupport.enableFor(commonViewer)
当我创建我的查看器时,我没有调用该方法。当我尝试这个时,我的工具提示又回来了(虽然与以前略有不同。