Этот ответ объясняет, как установить всплывающие подсказки для ячейки средства просмотра таблицы.Я пытался следовать этому, но это не работает.Это мой код:
TableViewer coTableViewer = createBasicTableViewer(coDetailsComposite);
TableViewerColumn labelColumn = new TableViewerColumn(coTableViewer, SWT.NONE);
coTableViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
labelColumn.getColumn().setText("Property");
ColumnViewerToolTipSupport.enableFor(coTableViewer);
EditingSupport coTableEditingSupport = new CoTableEditingSupport(coTableViewer, treeViewer, this, valueColumn.getViewer(), outlineElements);
valueColumn.setEditingSupport(coTableEditingSupport);
coTableViewer.setContentProvider(new CoTableContentProvider());
// coTableViewer.setLabelProvider(new CoTableLabelProvider());
labelColumn.setLabelProvider(new CoTableLabelProvider(0));
valueColumn.setLabelProvider(new CoTableLabelProvider(1));
Как видите, я установил провайдер меток для двух экземпляров TableViewerColumn.Поставщик метки происходит от ColumnLabelProvider
и переопределяет getColumnText
.Эта часть работает.Но метод getToolTipText
никогда не вызывается.Что мне здесь не хватает?
public final class CoTableLabelProvider extends ColumnLabelProvider implements ITableLabelProvider {
private int columnIndex;
public CoTableLabelProvider(int columnIndex) {
super();
this.columnIndex = columnIndex;
}
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
public String getColumnText(Object element, int columnIndex) {
return null;
}
@Override
// this method works
public String getText(Object element) {
if (element instanceof ...) {
if (columnIndex == 0) {
...
} else if (columnIndex == 1) {
...
}
}
return "";
}
@Override
public String getToolTipText(Object element) {
return "hello";
}
}