Если вы измените значение столбца текущей таблицы и нажмете клавишу ввода, он перейдет к следующему столбцу строки.Я хочу ввести значение прямо здесь.В настоящее время перемещается только выделенная ячейка, и вам нужно щелкнуть мышью по ячейке, чтобы ввести значение.
CellNavigationStrategy naviStrat = new CellNavigationStrategy()
{
@Override
public boolean isNavigationEvent(ColumnViewer viewer, Event event) {
return event.keyCode == SWT.CR || event.keyCode == SWT.KEYPAD_CR;
}
public ViewerCell findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event) {
if (event.type == ColumnViewerEditorActivationEvent.KEY_PRESSED) {
if (event.keyCode == SWT.CR || event.keyCode == SWT.KEYPAD_CR) {
ViewerCell nextCell = currentSelectedCell.getNeighbor(ViewerCell.BELOW, false);
if(nextCell != null) { //다음 라인이 있을경우
if(nextCell.getItem() instanceof TableItem) {
tableViewer.getTable().setSelection(((TableItem)nextCell.getItem()));
}
}
return nextCell;
}
}
return null;
}
};
new TableViewerFocusCellManager(tableViewer, new FocusCellOwnerDrawHighlighter(tableViewer), naviStrat);
}