Расположение компонент

При помощи каких компонент вы посоветуете расположить компоненты на экране
компоненты:
фильтр, 2 таблицы
все компоненты должны располагаться друг под другом без пространства
Таблицы должны занимать поровну по высоте пространство незанятое фильтром.

Данный вариант был опробован, вот результат:

код:


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<window xmlns="http://schemas.haulmont.com/cuba/5.0/window.xsd"
        caption="msg://browseCaption"
        class="com.magenta.ladaimage.gui.uploadpart.UploadPartBrowse"
        lookupComponent="uploadPartTable"
        messagesPack="com.magenta.ladaimage.gui.uploadpart">
    <dsContext>
        <collectionDatasource id="uploadPartDs"
                              class="com.magenta.ladaimage.entity.UploadPart"
                              view="_local">
            <query>
                select e from ladaimage$UploadPart e
            </query>
        </collectionDatasource>
        <collectionDatasource id="newDs"
                              class="com.magenta.ladaimage.entity.Item"
                              view="_local">
            <query>
                select e from ladaimage$Item e
            </query>
        </collectionDatasource>
    </dsContext>
    <layout spacing="true">
        <vbox>
            <filter id="filter"
                    datasource="uploadPartDs">
                <properties include=".*"/>
            </filter>
            <vbox height="100%">
                <table id="uploadPartTable"
                       height="100%"
                       width="100%">
                    <columns>
                        <column id="lot"/>
                        <column id="dealer"/>
                        <column id="isUnited"/>
                        <column id="uploadCenter"/>
                    </columns>
                    <rows datasource="uploadPartDs"/>
                    <rowsCount/>
                </table>
                <table height="100%"
                       width="100%">
                    <columns>
                        <column id="name"/>
                    </columns>
                    <rows datasource="newDs"/>
                </table>
            </vbox>
        </vbox>
    </layout>
</window>

Если же жестко задать высоту то результат такой:

Код:


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<window xmlns="http://schemas.haulmont.com/cuba/5.0/window.xsd"
        caption="msg://browseCaption"
        class="com.magenta.ladaimage.gui.uploadpart.UploadPartBrowse"
        lookupComponent="uploadPartTable"
        messagesPack="com.magenta.ladaimage.gui.uploadpart">
    <dsContext>
        <collectionDatasource id="uploadPartDs"
                              class="com.magenta.ladaimage.entity.UploadPart"
                              view="_local">
            <query>
                select e from ladaimage$UploadPart e
            </query>
        </collectionDatasource>
        <collectionDatasource id="newDs"
                              class="com.magenta.ladaimage.entity.Item"
                              view="_local">
            <query>
                select e from ladaimage$Item e
            </query>
        </collectionDatasource>
    </dsContext>
    <layout spacing="true">
        <vbox>
            <filter id="filter"
                    datasource="uploadPartDs">
                <properties include=".*"/>
            </filter>
            <vbox height="100%">
                <table id="uploadPartTable"
                       height="300px"
                       width="100%">
                    <columns>
                        <column id="lot"/>
                        <column id="dealer"/>
                        <column id="isUnited"/>
                        <column id="uploadCenter"/>
                    </columns>
                    <rows datasource="uploadPartDs"/>
                    <rowsCount/>
                </table>
                <table height="300px"
                       width="100%">
                    <columns>
                        <column id="name"/>
                    </columns>
                    <rows datasource="newDs"/>
                </table>
            </vbox>
        </vbox>
    </layout>
</window>

Но этот результат неудовлетворителен так как нужно чтобы таблицы занимали все возможное пространство

Спасибо expand помог

Вы упустили expand=“usersTableBox” для layout. VBox, который лежит в layout, не требуется, layout по умолчанию - вертикальный контейнер.

Ключевой момент - задать высоту для таблиц равную 100%, таблицы поместить в вертикальный контейнер. Тогда контейнер выделит для компонентов поровну места. Сам контейнер должен иметь 100% высоту, для этого можно использовать expand.

Пример:


<layout expand="usersTableBox" spacing="true">
    <filter id="genericFilter" datasource="usersDs" 
        margin="false,false,true,false">
        <properties include=".*"/>
    </filter>
    <vbox id="usersTableBox" spacing="true">
        <table id="usersTable" height="100%" width="100%">
            <columns>
                <column id="login"/>
                <column id="name"/>
            </columns>
            <rows datasource="usersDs"/>
        </table>
        <table id="usersTable2" height="100%" width="100%">
            <columns>
                <column id="login"/>
                <column id="name"/>
            </columns>
            <rows datasource="usersDs"/>
        </table>
    </vbox>
</layout>