Компонент SearchField
Компонент SearchField представляет собой текстовое поле ввода с соответствующей кнопкой для выполнения поиска. Он также предоставляет возможности настройки во время выполнения, доступные через кнопку параметров.
XML-элемент |
|
|---|---|
Java-класс |
|
Атрибуты |
id - alignSelf - ariaLabel - ariaLabelledBy - autofocus - classNames - colspan - css - enabled - entities - focusShortcut - height - helperText - justifySelf - label - maxHeight - maxWidth - minHeight - minWidth - openMode - placeholder - searchButtonVisible - searchSize - searchStrategy - settingsButtonVisible - tabIndex - themeNames - title - value - valueChangeMode - valueChangeTimeout - visible - width |
Обработчики |
AttachEvent - BlurEvent - ComponentValueChangeEvent - DetachEvent - FocusEvent - InputEvent - KeyDownEvent - KeyPressEvent - KeyUpEvent - searchCompletedHandler |
Основы
Чтобы добавить компонент на экран, используйте Jmix Studio.
Нажмите Add Component на панели действий, затем найдите элемент SearchField и дважды кликните по нему.
Новый элемент searchField будет добавлен как на панель структуры Jmix UI, так и в XML-дескриптор. Вы можете настроить стандартные атрибуты (id, height, width и т.д.) так же, как и для любого другого UI-компонента.
<search:searchField id="searchField"/>
Если вы не используете дизайнер экранов, объявите пространство имен search в XML-дескрипторе вашего экрана вручную:
<view xmlns="http://jmix.io/schema/flowui/view"
xmlns:search="http://jmix.io/schema/search/ui"
title="msg://searchView.title">
Конфигурация во время выполнения
searchField включает кнопку настроек (вертикальное многоточие ⋮), которая открывает диалог конфигурации, позволяя пользователям динамически изменять параметры поиска без изменения XML.
Пользователи могут настроить следующие параметры во время выполнения:
| Конфигурация | Соответствующий атрибут | Описание |
|---|---|---|
Стратегия поиска |
Определяет, как обрабатывается поисковый термин |
|
Размер |
Ограничивает количество результатов поиска |
|
Сущности |
Определяет, по каким сущностям выполнять поиск (можно выбрать несколько сущностей) |
Экран результатов поиска
По умолчанию searchField открывает встроенный SearchResultsView. Этот экран управляет процессом выполнения запроса к поисковому движку и отображает результаты либо в текущем контейнере навигации, либо в диалоговом окне, в зависимости от атрибута openMode.
Чтобы изменить это поведение, настройте SearchCompletedHandler. Это можно сделать либо декларативно, используя аннотацию @Install, либо программно, используя setSearchCompletedHandler().
Пример с @Install:
@Autowired
private DialogWindows dialogWindows;
@ViewComponent
private SearchField searchField;
@Install(to = "searchField", subject = "searchCompletedHandler")
private void searchFieldSearchCompletedHandler(
final SearchField.SearchCompletedEvent event) {
DialogWindow<SearchResultsView> searchResultsDialog =
dialogWindows.view(UiComponentUtils.getView(this),
SearchResultsView.class)
.build();
SearchResultsView view = searchResultsDialog.getView();
view.initView(new SearchFieldContext(searchField));
searchResultsDialog.open();
}
Атрибуты
Общие атрибуты служат одной и той же цели для всех компонентов.
Следующие атрибуты являются специфичными для searchField:
| Название | Описание | Значение по умолчанию |
|---|---|---|
Определяет, по каким сущностям выполнять поиск. Несколько сущностей могут быть перечислены в виде последовательности, разделенной запятыми.
|
- |
|
Определяет, как открывается экран результатов поиска при выполнении поиска. |
|
|
Показывает или скрывает кнопку поиска. |
|
|
Ограничивает количество результатов поиска, отображаемых на одной странице результата поиска. |
Наследуется от свойства приложения jmix.search.search-result-page-size. |
|
Определяет применяемую стратегию поиска. См. Стратегии поиска. |
|
|
Показывает или скрывает кнопку настроек ( |
|