searchField

Для работы компонента требуется дополнение Search.

searchField содержит поле ввода и элементы управления для выполнения и настройки полнотекстового поиска.

XML-элемент

searchField

Java-класс

SearchField

Основы

Объявите пространство имен search в XML-дескрипторе экрана:

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

Studio автоматически добавляет пространство имен, когда вы добавляете компонент с помощью действия Add Component на верхней панели действий. См. Палитра компонентов.

Затем добавьте searchField в экран:

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

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

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

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

jmix.search.default-search-strategy

settingsButtonVisible

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

true

Компонент поддерживает следующие общие атрибуты:

Обработчики

Следующий обработчик относится к searchField:

Чтобы сгенерировать заглушку обработчика в Jmix Studio, используйте вкладку Handlers панели инспектора Jmix UI, или команду Generate Handler, доступную на верхней панели контроллера экрана и через меню CodeGenerate (Alt+Insert / Cmd+N).

Название Описание

searchCompletedHandler

Обрабатывает завершенный поиск и получает SearchCompletedEvent с результатом поиска. См. Экран результатов поиска.

Компонент поддерживает следующие общие обработчики: