multiSelectComboBoxPicker
multiSelectComboBoxPicker
позволяет пользователям выбирать один или несколько элементов из выпадающего списка или списка действий. Этот компонент поддерживает все функции обычного multiSelectComboBox.
XML-элемент |
|
---|---|
Java-класс |
|
Атрибуты |
id - alignSelf - allowCustomValue - allowedCharPattern - ariaLabel - ariaLabelledBy - autoExpand - autoOpen - autofocus - classNames - clearButtonVisible - colspan - css - dataContainer - enabled - errorMessage - focusShortcut - height - helperText - itemsContainer - itemsEnum - label - maxHeight - maxWidth - metaClass - minHeight - minWidth - opened - overlayClass - pageSize - placeholder - property - readOnly - required - requiredMessage - selectedItemsOnTop - tabIndex - themeNames - title - visible - width |
Обработчики |
AttachEvent - BlurEvent - ClientValidatedEvent - ComponentValueChangeEvent - CustomValueSetEvent - DetachEvent - FocusEvent - TypedValueChangeEvent - itemLabelGenerator - itemsFetchCallback - renderer - validator |
Элементы |
actions - fragmentRenderer - itemsQuery - tooltip - validators |
Основы
Выпадающий список открывается, когда пользователь щелкает по полю с помощью указывающего устройства (мышь, тачпад). Использование клавиш "Вверх"
и "Вниз"
или ввод символа, когда поле находится в фокусе, также открывает выпадающий список.
Для multiSelectComboBoxPicker
можно определить произвольное количество действий, отображаемых в виде кнопок справа. Это можно сделать либо в XML-дескрипторе, используя вложенный элемент actions
, либо программно в контроллере, используя метод addAction()
.

<multiSelectComboBoxPicker id="multiSelectComboBoxPicker"
itemsEnum="com.company.onboarding.entity.DayOfWeek">
<actions>
<action id="clearAction" type="entity_clear"/>
</actions>
</multiSelectComboBoxPicker>
Привязка данных
Привязка данных - это процесс связывания визуального компонента с контейнером данных. Изменения в визуальном компоненте или в соответствующем контейнере данных могут вызывать обновления друг в друге. Подробности смотрите в разделе Использование компонентов данных.
Чтобы создать multiSelectComboBoxPicker
, связанный с данными, используйте атрибуты dataContainer и property. Атрибут itemsContainer используется для создания списка элементов. Следующий пример создает multiSelectComboBoxPicker
, поддерживающий работу с данными.
<data>
<instance id="userDc" class="com.company.onboarding.entity.User"> (1)
<fetchPlan extends="_base"> (2)
<property name="hobbies" fetchPlan="_base"/>
</fetchPlan>
<loader id="userDl"/>
</instance>
<collection id="hobbiesDc" class="com.company.onboarding.entity.Hobby"> (3)
<loader id="hobbiesDl" readOnly="true">
<query>
<![CDATA[select e from Hobby e]]>
</query>
</loader>
<fetchPlan extends="_base"/>
</collection>
</data>
<facets>
<dataLoadCoordinator auto="true"/> (4)
</facets>
<layout>
<multiSelectComboBoxPicker id="hobbiesPicker"
dataContainer="userDc"
property="hobbies"
itemsContainer="hobbiesDc"> (5)
<actions>
<action id="entityClear" type="entity_clear"/> (6)
<action id="entityLookup" type="entity_lookup"/> (7)
</actions>
</multiSelectComboBoxPicker>
</layout>
1 | Контейнер данных для хранения экземпляра User , который в данный момент редактируется. |
2 | Фетч-план расширен для извлечения коллекции экземпляров Hobby , которые будут доступны для выбора. |
3 | CollectionContainer для сущности Hobby . |
4 | Координатор загрузки данных для автоматического предоставления компоненту экземпляров для выбора. |
5 | multiSelectComboBoxPicker получает hobbiesDc в качестве контейнера элементов, чтобы отобразить список хобби в выпадающем списке. |
6 | Добавление предопределенного действия для очистки выбора. |
7 | Добавление предопределенного действия для открытия экрана поиска. |
Значение компонента возвращает список выбранных элементов.
Использование MetaClass
Вы можете использовать multiSelectComboBoxPicker
без прямой ссылки на данные, то есть вам не нужно указывать атрибуты dataContainer
или property
. В этом случае используйте атрибут metaClass
, чтобы указать тип сущности для multiSelectComboBoxPicker
. Чтобы указать коллекцию экземпляров для выбора, используйте атрибут itemsContainer
.
Например, компонент может работать с сущностью Hobby
, которая имеет имя класса метаданных Hobby
.
<multiSelectComboBoxPicker metaClass="Hobby"
itemsContainer="hobbiesDc">
<actions>
<action id="clear" type="entity_clear"/>
</actions>
</multiSelectComboBoxPicker>
Основные возможности
Поддерживаются следующие возможности, общие для компонентов comboBox
или multiSelectComboBox
:
Валидация
Чтобы проверить значения, введенные в компонент multiSelectComboBoxPicker
, вы можете использовать валидатор во вложенном элементе validators
.
Для multiSelectComboBoxPicker
доступны следующие предопределенные валидаторы:
XML-элемент |
|
---|---|
Предопределенные валидаторы |