SWT таблица Нажмите Enter, чтобы переместить фокус на следующий столбец строки - PullRequest
0 голосов
/ 23 сентября 2019

Если вы измените значение столбца текущей таблицы и нажмете клавишу ввода, он перейдет к следующему столбцу строки.Я хочу ввести значение прямо здесь.В настоящее время перемещается только выделенная ячейка, и вам нужно щелкнуть мышью по ячейке, чтобы ввести значение.

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);       

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...