Добрый день!
У меня есть следующий DetailView
:
<view xmlns="http://jmix.io/schema/flowui/view"
title="msg://dialogWindowConditionUiDtoDetailView.title"
focusComponent="form">
<data>
<instance id="recordUiDtoDc"
class="ru.ctsg.damdbf.manager.ui.dto.RecordUiDto">
<fetchPlan extends="_base"/>
<loader/>
</instance>
<collection id="attributesRecordUiDtoDc"
class="ru.ctsg.damdbf.manager.ui.dto.RecordUiDto">
<fetchPlan extends="_base"/>
<loader/>
</collection>
</data>
<facets>
<dataLoadCoordinator auto="true"/>
</facets>
<actions>
<action id="saveAction" type="detail_saveClose"/>
<action id="closeAction" type="detail_close"/>
</actions>
<layout>
<formLayout id="form" dataContainer="recordUiDtoDc">
<comboBox id="comboBox" dataContainer="attributesRecordUiDtoDc" required="true"/>
<comboBox id="operator" property="operator" required="true"/>
<comboBox id="inputMode" property="inputMode" required="true"/>
</formLayout>
<hbox id="detailActions">
<button id="saveAndCloseBtn" action="saveAction"/>
<button id="closeBtn" action="closeAction"/>
</hbox>
</layout>
</view>
Есть dto
:
@JmixEntity
public class RecordUiDto {
private String query;
private QueryType queryType;
private Date timestamp;
private String command;
private String tableName;
private String tableAlias;
private String attributeName;
private String attributeAlias;
private PropertyCondition.Operator operator;
private InputMode inputMode;
Я пытаюсь сделать следующее: нужно в поле, которое является combobox
положить все атрибуты, которые есть в RecordUiDto
. Чтобы получился такой выпадающий список:
Пробовал у RecordUiDto
вытащить все properties
и положить их в контейнер attributesRecordUiDtoDc
для combobox
:
@Subscribe
public void onInit(final InitEvent event) {
MetaClass metaClass = metadata.getClass(RecordUiDto.class);
List<MetaProperty> properties = metaClass.getProperties().stream()
.toList();
attributesRecordUiDtoDc.setItems(properties);
}
но получаю следующую ошибку: GuiDevelopmentException: Can't set container 'attributesRecordUiDtoDc' for component 'comboBox' because 'property' attribute is not defined
. Не очень понимаю, а что в моем случае я должен установить для поля property
?