Добавление всплывающей подсказки для ячеек TableViewer не работает - PullRequest
0 голосов
/ 01 июля 2019

Этот ответ объясняет, как установить всплывающие подсказки для ячейки средства просмотра таблицы.Я пытался следовать этому, но это не работает.Это мой код:

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";
    }
}
...