Filter table rows in lookupField

Hello, I want to filter the rows of the table by selecting a value in the LookUpField.


but the filter won’t work

<data readOnly="true">
    <collection id="departmentsDc" class="com.company.edm.entity.Department" view="_base">
        <loader id="departmentsDl">
            <query>
                <![CDATA[select e from edm_Department e]]>
            </query>
        </loader>
    </collection>
    <collection id="positionsesDc" class="com.company.edm.entity.Positions" view="_base">
        <loader id="positionsesDl">
            <query>
                <![CDATA[select e from edm_Positions e]]>
            </query>
        </loader>
    </collection>
    <collection id="usersesDc"
                class="com.company.edm.entity.Users">
        <view extends="_local" systemProperties="true">
            <property name="department" view="_local"/>
            <property name="position" view="_local"/>
            <property name="telephone" view="_local"/>
            <property name="status" view="_local"/>
        </view>
        <loader id="usersesDl">
            <query>
                <![CDATA[select e from edm_Users e]]>
                <condition>
                    <and>
                        <c:jpql>
                            <c:where>e.department = :component_departmentLookupField</c:where>
                        </c:jpql>
                        <c:jpql>
                            <c:where>e.position = :component_positionsLookupField</c:where>
                        </c:jpql>
                    </and>
                </condition>
            </query>
        </loader>
    </collection>
</data>
<dialogMode height="600"
            width="800"/>
<layout expand="usersesTable"
        spacing="true">
    <hbox width="100%" spacing="true">
        <tabSheet id="filterTabSheet">
            <tab id="defaultFilterTab" caption="Фильтр" margin="true" spacing="true">
                <hbox spacing="true">
                    <lookupField
                            id="departmentLookupField"
                            optionsContainer="departmentsDc"
                            caption="Департамент"
                            nullOptionVisible="true"
                    />
                    <lookupField
                            id="positionsLookupField"
                            optionsContainer="positionsesDc"
                            caption="Должность"
                            nullOptionVisible="true"
                    />
                    <button align="BOTTOM_CENTER"
                            id="clearFilterBtn"
                            action="usersesTable.clearFilter"
                    />
                </hbox>
            </tab>
            <tab id="extendedFilter" caption="Свой фильтр" margin="true" spacing="true">
                <filter id="filter"
                        width="100%"
                        borderVisible="false"
                        collapsable="false"
                        collapsed="false"
                        applyTo="usersesTable"
                        dataLoader="usersesDl">
                    <properties include=".*"/>
                </filter>
            </tab>
        </tabSheet>
    </hbox>
    <groupTable id="usersesTable"
                width="100%"
                dataContainer="usersesDc" align="TOP_CENTER">
        <actions>
            <action id="create" type="create"/>
            <action id="edit" type="edit"/>
            <action id="remove" type="remove"/>
            <action id="clearFilter"
                    caption="Очистить"
                    icon="ERASER"/>
        </actions>
        <columns>
            <column id="fio"/>
            <column id="department"/>
            <column id="position"/>
            <column id="telephone"/>
            <column id="login"/>
            <column id="documents"/>
            <column id="date_reg"/>
            <column id="status"/>
        </columns>
        <rowsCount/>
        <buttonsPanel id="buttonsPanel"
                      alwaysVisible="true">
            <button id="createBtn" action="usersesTable.create"/>
            <button id="editBtn" action="usersesTable.edit"/>
            <button id="removeBtn" action="usersesTable.remove"/>
        </buttonsPanel>
    </groupTable>
    <hbox id="lookupActions" spacing="true" visible="false">
        <button action="lookupSelectAction"/>
        <button action="lookupCancelAction"/>
    </hbox>
</layout>

UsersBrowse

@UiController("edm_Users.browse")
@UiDescriptor("users-browse.xml")
@LookupComponent("usersesTable")
@LoadDataBeforeShow
@Route("users")
public class UsersBrowse extends StandardLookup<Users> {
    @Inject
    protected LookupField<Department> departmentLookupField;
    @Inject
    protected LookupField<Positions> positionsLookupField;
    @Subscribe("clearFilterBtn")
    public void onClearFilterBtnClick(Button.ClickEvent event) {
        departmentLookupField.setValue(null);
        positionsLookupField.setValue(null);
    }
}

Hi,

You need to add the DataLoadCoordinator facet. More information can be found in the doc.

Regards,
Gleb