Я хотел бы установить фокус на строку с номером в TableViewer
.getViewer(). SetSelection() не работает с FocusCellOwnerDrawHighlighter
Фокус и ввод передача определяется следующим образом:
ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE);
FocusCellOwnerDrawHighlighter fch = new FocusCellOwnerDrawHighlighter(viewer);
TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer, fch);
ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) {
protected boolean isEditorActivationEvent(final
ColumnViewerEditorActivationEvent event) {
return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
|| event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
|| (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED && event.keyCode == SWT.F2)
|| event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
}
};
TableViewerEditor.create(viewer, actSupport, ColumnViewerEditor.TABBING_HORIZONTAL
| ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR |
ColumnViewerEditor.TABBING_VERTICAL
| ColumnViewerEditor.KEYBOARD_ACTIVATION);
Код для выбора строки является:
getViewer().setSelection(new StructuredSelection(parameterTable.getViewer().getElementAt(selection)), false);
Проблема заключается в том, что, как только я использую FocusCellOwnerDrawHighlighter
, setSelection
больше не работает, что означает, что ни одна строка не выбрана.
Любые идеи, что я делаю неправильно?
Привет Роджер