Компонент SearchField

Компонент SearchField представляет собой текстовое поле ввода с соответствующей кнопкой для выполнения поиска. Он также предоставляет возможности настройки во время выполнения, доступные через кнопку параметров.

XML-элемент

searchField

Java-класс

io.jmix.searchflowui.component.SearchField

Атрибуты

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 и дважды кликните по нему.

create search field component

Новый элемент searchField будет добавлен как на панель структуры Jmix UI, так и в XML-дескриптор. Вы можете настроить стандартные атрибуты (id, height, width и т.д.) так же, как и для любого другого UI-компонента.

<search:searchField id="searchField"/>
search field

Если вы не используете дизайнер экранов, объявите пространство имен search в XML-дескрипторе вашего экрана вручную:

<view xmlns="http://jmix.io/schema/flowui/view"
      xmlns:search="http://jmix.io/schema/search/ui"
      title="msg://searchView.title">

Конфигурация во время выполнения

searchField включает кнопку настроек (вертикальное многоточие ), которая открывает диалог конфигурации, позволяя пользователям динамически изменять параметры поиска без изменения XML.

search settings dialog

Пользователи могут настроить следующие параметры во время выполнения:

Конфигурация Соответствующий атрибут Описание

Стратегия поиска

searchStrategy

Определяет, как обрабатывается поисковый термин

Размер

searchSize

Ограничивает количество результатов поиска

Сущности

entities

Определяет, по каким сущностям выполнять поиск (можно выбрать несколько сущностей)

Скрытие кнопки настроек

Вы можете скрыть кнопку настроек с помощью атрибута settingsButtonVisible:

<search:searchField id="searchCustomerField"
                    settingsButtonVisible="false"/>

Экран результатов поиска

По умолчанию 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:

Название Описание Значение по умолчанию

entities

Определяет, по каким сущностям выполнять поиск. Несколько сущностей могут быть перечислены в виде последовательности, разделенной запятыми.

<search:searchField id="searchField"
                    entities="Customer, Order_"/>

-

openMode

Определяет, как открывается экран результатов поиска при выполнении поиска. NAVIGATION заменяет основную область контента; DIALOG открывает модальное окно.

NAVIGATION

searchButtonVisible

Показывает или скрывает кнопку поиска.

true

searchSize

Ограничивает количество результатов поиска, отображаемых на одной странице результата поиска.

Наследуется от свойства приложения jmix.search.search-result-page-size.

searchStrategy

Определяет применяемую стратегию поиска. См. Стратегии поиска.

anyTermAnyField

settingsButtonVisible

Показывает или скрывает кнопку настроек (). Смотрите Конфигурация во время выполнения.

true