Фокус компонентов. handler, listener, event

Доброго дня! Как в jmix получить фокус любого поля (textField, entityPicker, entityComboBox и т.д.)? Handler’ов на получение фокуса (например, при нажатии мыши в поле) не нашел, как event и listener. Меня конкретно интересует, чтобы при выборе поля, текст в нем сразу выделялся, в textField для выделения текста есть метод selectAll(), но у EntityComboBox данного метода нет. Прошу Вашей помощи, как это реализовать?

Если такое поведение нужно во всем приложении, а не на отдельном экране, то вам надо немного модифицировать тему.
В документации есть про это: Creating a Custom Theme :: Документация Jmix
Потребуется немного изменить соответствующие стили для нужных элементов. Как минимум v-textfield-focus.
Возможно, какие-то еще стили в зависимости от того, для каких компонентов UI вам это нужно.

Добрый день!

К сожалению, ComboBox не имеет встроенного API для выделения текста в Input части. А т.к. EntityComboBox основывается на ComboBox то и он тоже.

Двольно сложным путём является написание своего Extentsion-а для компонента, чтобы самому предоставить такой API.

См. Component and UI Extensions | Client-Server Integration | Framework | Vaadin 8 Docs.
Примером расширения в Jmix может послужить PivotTableExtension:

Программно подписаться на фокус для EntityComboBox можно так:

JmixComboBoxPickerField comboBox = entityComboBox.unwrap(JmixComboBoxPickerField.class);
((JmixComboBox) comboBox.getField()).addFocusListener(focusEvent -> {
    // focus occurred 
});
2 симпатии