Выпадающий список EntityComboBox

Подскажите, пожалуйста, что отправить entityComboBox, чтобы он отобразил свой список,“выронив его вниз”, как будто бы я на него нажал?
Ну, то есть чтобы он перешёл вот в такое, “открытое” состояние -

combo-box1

Добрый день.

Если вы хотите “открыть” выпадающий список компонента entityComboBox программно из контроллера экрана, то такого API у него нет.

Возможно, в качестве альтернативы, Вам подойдет компонент SingleSelectList.

Глеб

1 симпатия

то такого API у него нет.

Ясно, жаль, но спасибо, время мне сэкономили.

Возможно, в качестве альтернативы, Вам подойдет компонент SingleSelectList.

Не, не подойдёт. Цель этого вопроса во взаимодействии с пользователем, который забыл заполнить обязательное поле и я бы ему об этом напомнил, открыв выпадающий список в нужном комбобоксе.

Тогда может быть у entityComboBox поставить параметр AutomaticPopupOnFocus в true и если пользователь забыл что-то вписать ставить фокус на этом поле? По моему если поле required и оно не заполнено, то при валидации происходит автоматический фокус (Если поле первое в списке в не прошедших валидацию).

UPD. Да. Судя по коду. Если поле не прошло валидацию и оно первое в ошибках. То фокус на него ставится. (ScreenValidation#focusProblemComponent)

2 симпатии

О! а вот это - то, что надо. Спасибо.

Чо-то не получается у entityComboBox выставить параметр AutomaticPopupOnFocus в true.
Я и в onAfterShow делал setAutomaticPopupOnFocus(true) и в onInit у формы, итог один - делаю focus() у entityComboBox, но popup не отображается, только фокус переходит на комбобокс.
При этом проверяю значение isAutomaticPopupOnFocus() у entityComboBox - оно равно false.

Хм… Да… в имплементации EntityComboBox и ComboBox isAutomaticPopupOnFocus все время возвращает false
Мб @gorelov Подскажет для чего тогда этот метод вообще нужен? Мб в будущем поведение измениться? Как я понимаю это поведение идет с кубы. Если оно не используется то мб и метод убрать?

Тогда как обходной вариант возможно попробовать имплементировать PrefixComboBox из аддонов ваадина?
Creating Vaadin Component Class
Судя по документации PrefixComboBox экстендит ComboBox Vaadina.
Нужно будет заэкстендить PrefixComboBox по образу JmixComboBox, заэкстендить EntityComboBox (создать новый компонент или если вам логика popup нужна во всем приложении то заменить поле через Component Registration) и там использовать ExtPrefixComboBox createComponent с добавлением логики по popup

1 симпатия

Этот метод работает в desktop имплементации компонента ComboBox (aka LookupField) в CUBA Platform. Забыли удалить в Jmix. Спасибо, что обратили внимание, завел задачу.

Глеб