Я создаю таблицу и добавляю контейнер в зависимости от условия, но в итоге названия колонок создаются в своем каком-то порядке (например age, sex, name, weight) а мне нужно (name, age, sex, weight) как отсортировать колонки по своему усмотрению?
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<fragment xmlns="http://jmix.io/schema/ui/fragment">
<data readOnly="true">
<collection id="dogDc"
class="com.consyst.isopas.entity.Dog">
<loader id="dogDl">
<query>
<![CDATA[select i from Dog i]]>
</query>
</loader>
</collection>
<collection id="catDc"
class="com.consyst.isopas.entity.Cat">
<loader id="catDl">
<query>
<![CDATA[select i from Cat i]]>
</query>
</loader>
</collection>
</data>
<facets>
<dataLoadCoordinator auto="true"/>
</facets>
<layout>
<vbox id="tables"/>
</layout>
</fragment>
Если вы програмно создаете таблицу можно просто удалить сгенерированные столбцы (все) после того, как вы проставили к таблице контейнер, после чего в в ручную добавить столбцы
Однако, как я вижу у вас схожие данные - потому настоятельно рекомендую вместо этого использовать маппинг в 1 общий тип и применять к данным просто сортировку, тогда не придется динамически создавать таблицу с разными колонками
То есть
у вас есть собака и кошка и они могуть иметь DTO (JmixEntity), вот именно этот дата контейнер вы заполняете и обновляете в зависимости от условий, а даблица тянет данные именно из сортированного нового контейнера
надо чтобы хотя бы 1 свойство оставалось в таблице (потом можете удалить)
там не MetaProperty, a MetaPropertyPath, потому addColumn чуть другой
как видите, код с изменением таблицы выглядит немного неуместным. Потому я и сказал про data-based подход при работе с таблицами когда у нас все в общем представлении и мы уже его сортируем. Либо просто имеем 2 разные таблицы