我正在尝试使用自定义labelprovider基于CommonNavigator类向导航器添加工具提示。但是,工具提示永远不会显示,并且实现的方法永远不会被调用。我在Eclipe Bug Report网站上看到了一些错误,但我不确定这是因为这个错误还是因为我做错了什么以及是否有解决方法。
这些是主要的类(我已经改变了类名)。
导航器视图:
public class MyNavigatorView extends CommonNavigator {
//...
@Override
public void initListeners(TreeViewer viewer) {
ColumnViewerToolTipSupport.enableFor(viewer);
//...
}
}
Label Provider类:
public class MyNavigatorLabelContentProvider extends CellLabelProvider implements ILabelProvider, IStyledLabelProvider {
//...
@Override
public String getToolTipText(Object element) {
return "Tooltip Test";
}
@Override
public boolean useNativeToolTip(Object object) {
return true;
}
}
有没有可行的解决方案?
由于
答案 0 :(得分:0)
对于遇到同样问题的其他人:
提供的链接greg-449解决了这个问题。
我必须在视图中覆盖createCommonViewer方法并手动设置标签提供程序:
public class MyNavigatorView extends CommonNavigator {
//...
@Override
public void initListeners(TreeViewer viewer) {
ColumnViewerToolTipSupport.enableFor(viewer);
//...
}
@Override
protected CommonViewer createCommonViewer(Composite aParent) {
CommonViewer cv = super.createCommonViewer(aParent);
cv.setLabelProvider(new MyNavigatorLabelContentProvider());
return cv;
}
}