fullTextFilter

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

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

XML-элемент

fullTextFilter

Java-класс

FullTextFilter

Основы

Объявите пространство имен 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 на верхней панели действий. См. Палитра компонентов.

Свяжите fullTextFilter с загрузчиком коллекции данных с помощью обязательного атрибута dataLoader. В следующем примере объявлены данные, фильтр и таблица результатов:

<data>
    <collection id="ordersDc"
                class="com.company.demo.entity.Order">
        <loader id="ordersDl"
                readOnly="true">
            <query>
                <![CDATA[select e from Order_ e]]>
            </query>
        </loader>
        <fetchPlan extends="_base">
            <property name="customer"
                      fetchPlan="_base"/>
        </fetchPlan>
    </collection>
</data>
<facets>
    <dataLoadCoordinator auto="true"/>
</facets>
<layout>
    <search:fullTextFilter dataLoader="ordersDl"
                           autoApply="true"/>
    <dataGrid id="ordersDataGrid"
              width="100%"
              dataContainer="ordersDc">
        <columns>
            <column property="number"/>
            <column property="date"/>
            <column property="amount"/>
            <column property="product"/>
            <column property="customer"/>
        </columns>
    </dataGrid>
</layout>

Компонент FullTextFilter работает следующим образом:

  1. Выполняет полнотекстовый поиск и получает идентификаторы сущностей, соответствующих критериям поиска.

  2. Добавляет условие с этими идентификаторами в связанный dataLoader.

  3. Если DataGrid или другой компонент списка связан с этим загрузчиком, он отображает только записи, соответствующие критериям полнотекстового поиска.

Условие полнотекстового поиска объединяется с другими фильтрами загрузчика данных, уточняя набор результатов.

Валидация

Для проверки значений, введенных в компонент fullTextFilter, можно использовать валидатор во вложенном элементе validators.

Для fullTextFilter доступны следующие предопределенные валидаторы:

XML-элемент

validators

элементы

custom - decimalMax - decimalMin - digits - doubleMax - doubleMin - email - future - futureOrPresent - max - min - negative - negativeOrZero - notBlank - notEmpty - notNull - past - pastOrPresent - positive - positiveOrZero - regexp - size

Атрибуты

Следующие атрибуты относятся к fullTextFilter:

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

autoApply

Если установлено значение true, fullTextFilter автоматически применяется к загрузчику данных при изменении значения компонента.

jmix.ui.component.filter-auto-apply

dataLoader

Задает обязательный загрузчик данных, который фильтрует компонент. Это должен быть загрузчик коллекции.

labelPosition

Задает положение метки относительно компонента значения фильтра. См. положение метки propertyFilter.

labelWidth

Задает ширину метки в единицах CSS. См. ширину метки propertyFilter.

searchStrategy

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

jmix.search.default-search-strategy

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

Обработчики

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

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

validator

Проверяет значение компонента.

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

Элементы

fullTextFilter может содержать вложенные элементы tooltip и validator.