Datagrid и встроенный редактор

В примере и в этом примере тоже, при входе в режим редактирования (editable=true), нельзя выйти из этого режима по клавише Esc. Можно применить изменения только при щелчке мыши на другую запись. А если запись одна - то выйти нельзя. Только если нажать “Ок”, который завершает редактирование окна.
В vaadin - Клавиша Esc в режиме редактора работает.

DataGrid внедряю в DetailView, Jmix 2.2.0

Upd. В режиме editable=true, нет возможности добавить поле выбора из каталога, вылетает ошибка “IllegalArgumentException: DataGrid has no API to obtain component list”

Можно добавить нужные слушатели в коде.

    fun initEditor() {
        addKeyListener(table, Key.ENTER) { onEnterPressed() }
        addKeyListener(table, Key.ESCAPE) { editor.cancel() }
        table.addItemDoubleClickListener {
            if (!editor.isOpen) editor.editItem(it.item)
        }
    ...
    }

    fun addKeyListener(component: Component, key: Key, command: Command) {
        Shortcuts.addShortcutListener(component, command, key).listenOn(component)
    }

Добрый день,

Встроенный редактор DataGrid не имеет логики закрытия по умолчанию. Для закрытия нужно вызвать close()/cancel(). В документации на которую вы ссылаетесь, если развернуть весь код примера, можно найти, что Ваадины явно подписываются на Esc для TextField компонентов:

private static void addCloseHandler(Component textField, Editor<Person> editor) {
    textField.getElement()
             .addEventListener("keydown", e -> editor.cancel())
             .setFilter("event.code === 'Escape'");
}

Не могли бы Вы поподробнее описать проблему?

Глеб

Я пытался в режиме разметки вставить поле combobox entity, потом увидел в документации:
" To support framework mechanisms like data containers, value sources, etc., the column editor component must be added using DataGridEditor methods (DataGridEditor#setColumnEditorComponent() ) instead of direct column API Column#setEditorComponent() ."