@Override
            public void keyPressed(KeyEvent e) {
              final int column = myTableView.getEditingColumn();
              final int row = myTableView.getEditingRow();
              if (e.getModifiers() == 0 && (e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() == KeyEvent.VK_TAB)) {
                e.consume();
                SwingUtilities.invokeLater(() -> {
                  stopEditing();
                  int nextColumn = column < myTableView.getColumnCount() - 1 ? column + 1 : 0;
                  int nextRow = nextColumn == 0 ? row + 1 : row;
                  if (nextRow > myTableView.getRowCount() - 1) {
                    if (myElements.isEmpty() || !ListTableWithButtons.this.isEmpty(myElements.get(myElements.size() - 1))) {
                      AnActionButton addButton = ToolbarDecorator.findAddButton(myPanel);
                      if (addButton != null) {
                        addButton.actionPerformed(ActionUtil.createEmptyEvent());
                      }
                      return;
                    }
                    else {
                      nextRow = 0;
                    }
                  }
                  myTableView.scrollRectToVisible(myTableView.getCellRect(nextRow, nextColumn, true));
                  myTableView.editCellAt(nextRow, nextColumn);
                });
              }
            }
@Override
            public void keyPressed(KeyEvent e)