Чекбокс формы списка

Добрый день, добавил на форму чекбокс, теперь хочу получить список выделенных элементов через CollectionContainer, но там нет чекбокса. Как достучаться до самой формы?

image

image

@Autowired
private CollectionContainer utmsDc;

@Install(to = “utmsTable.selectutm”, subject = “columnGenerator”)
private Component utmsTableSelectutmColumnGenerator(Utm utm) {
CheckBox checkBox = uiComponents.create(CheckBox.class);
return checkBox;
}

CollectionContainer содержит список сущностей, он ничего не знает про создаваемые вами чекбоксы.

Самое простое в вашем случае - добавить в сущность транзиентное поле:
image

Объявить колонку для этого поля и сделать ее редактируемой.

Спасибо, направили, но я по прежнему не могу понять как обратиться к табличной части.

А так же чекбокс выставляется только в редактировании, в табличной части не доступен, просто выделяется строчка.

image

  1. Добавьте transient-атрибут в сущность:

    image

    @JmixProperty
    @Transient
    private Boolean selected;
    
  2. Добавьте колонку для атрибута и сделайте колонку и всю таблицу редактируемой:

    <groupTable id="departmentsTable"
                width="100%"
                dataContainer="departmentsDc" 
                editable="true"> <!-- here -->
        <!-- ... -->
        <columns>
            <column id="selected" editable="true"/> <!-- here -->
            <column id="name"/>
            <column id="hrManager"/>
        </columns>
        <!-- ... -->
    </groupTable>
    

    Выглядеть будет так:
    image

  3. В сущности поле будет изменяться, можете фильтровать по нему:

    @Subscribe("printSelected")
    public void onPrintSelectedClick(Button.ClickEvent event) {
        departmentsDc.getItems().stream()
                .filter(department ->
                        Boolean.TRUE.equals(department.getSelected()))
                .forEach(department ->
                        System.out.println(department));
    }
    
1 симпатия