Я не уверен, что это именно то, что вы ищете, но если вы обернули Table
в TableViewer
, вы можете использовать TableViewerEditor
как часть поддержки редактирования ячеек.(Я полагаю, что вы можете использовать функцию фокусировки TableViewerEditor
без какого-либо редактирования ячейки.)
Это фактически отменяет обработку фокуса в операционной системе, но позволяет программно настраивать обработку фокуса.Я использовал это, чтобы включить обход клавиатуры для редактирования ячейки.
Вот несколько быстрых и грязных примеров кода, которые могут поддерживать фокусировку ячейки.(Не проверено. Возможно, например, что поддержка редактирования ячеек должна должна быть включена для работы поддержки TableViewerEditor
.)
FocusCellHighlighter cellHighlighter = new FocusCellHighlighter(tableViewer);
TableViewerFocusCellManager focusManager = new TableViewerFocusCellManager(tableViewer, cellHighlighter);
TableViewerEditor.create(tableViewer, focusCellManager, new ColumnViewerActivationStrategy(tableViewer), TableViewerEditor.KEYBOARD_NAVIGATION);
Затем вы можете получить выделенную ячейку с помощью
ViewerCell focusedCell = viewer.getColumnViewerEditor().getFocusCell();
TableItem focusedItem = focusedCell != null ? focusedCell.getItem() : null;
Обратите внимание, что это возможно только в Eclipse> = 3.3.