Контроллер использую StandardLookup, т.к. с ScreenFragment проект не запускается. По итогу смог добиться только такого результата: плоская одноколоночная таблица вместо дерева слева, и все строки справа вместо выборки только “листьев дерева”. Но тут еще не понял как задавать отношение для выборки в параметр query.
И дополнительно вопрос: возможно ли сразу редактировать значения в правой части, без открытия отдельно окна?
@UiController(“jmix_Config.browse”) @UiDescriptor(“config-browse.xml”) @LookupComponent(“configTable”)
public class ConfigBrowse extends StandardLookup {
}
Так нет, нужна не таблица (TreeTable), а именно дерево (Tree). То что на картинке (в заголовке вопроса) в левой части.
На картинке справа выведена вся таблица - тестировал подходы…
В названии элемента указан id, parentId указан в скобках в названии. Root имеет оба значения =0.
И получается что при использовании, компонент Tree выводит все записи подряд в колонку, без вложенности. И дерево из примера не получается…
Или может есть какие ограничения/правила на использование? (как например в мастер-детайл окне обязателен элемент с id=table и если такового нет, то окно не грузится)
Проблема скорее всего в дата контейнере, который вы используете в дереве, если вы будете использовать стандартный контейнер configDc, все будет отображаться корректно, возможно, ваш запрос в query для configTreeDc возвращает данные, из которых невозможно составить иерархию.
Да, действительно, проблема была в data-контейнере, а именно в плане выборки. Она заключалась в следующем: при работе с UUID идентификацией данных (как в примере выше) код отрабатывал корректно и дерево строилось, при любом варианте плана выборки.
В случае использования INT-идентификаторов и выборки по SAMPLER-примеру получался плоский список. Причем путем “натыкивания” по структуре он мог даже свернуться в дерево, и не факт что корректно. При этом план выборки был из примера и выглядел так: <fetchPlan extends="_local"> <property name="parentTask" fetchPlan="_local"/> </fetchPlan>
Дерево получилось с выборкой по плану без указания колонки сопряжения в дерево: <fetchPlan extends="_local"/>
При этом тип плана base или local на результат не повлиял.