Получать SelectionEvent для datagrid через аннотации

Добрый день.

Возможно я “не туда смотрю”.

Вопрос следующий: есть ли в jmix 2 (2.3.1 на текущий момент) возможность связать метод обработки selectionevent для datagrid через аннотации, как это можно было сделать в cuba-platform и если можно, то как?

Спасибо.

Добрый день.

Вы имеете в виду что-то подобное?

    @Subscribe(id = "usersDc", target = Target.DATA_CONTAINER)
    public void onUsersDcItemChange(final InstanceContainer.ItemChangeEvent<User> event) {
        log.info("User selected: {}", event.getItem());
    }

    @Subscribe("usersDataGrid")
    public void onUsersDataGridItemClick(final ItemClickEvent<User> event) {
        log.info("Item clicked: {}", event.getItem());
    }

Для отслеживания выделения записи в дата гриде можно подписаться как на событие дата-грида, так и связанного дата-контейнера.

Из студии вы всегда можете увидеть все возможные обработчики в диалоге Generate Handler

image

Это хорошо. Как поступать в случае мульти селекта. Проще говоря мне нужно получить список выбранных сущностей. В кубе для это можно было подписаться на событие DataGrid.SelectionEvent. Будет ли подобная возможность в jmix 2?

Сейчас слушатель на SelectionChanged вы можете добавить следующим способом:

    usersDataGrid.addSelectionListener(selectionEvent -> {
        Set<User> allSelectedItems = selectionEvent.getAllSelectedItems();
        log.info("Selected items: {}", allSelectedItems);
    });

Сделал тикет на поддержку данного слушателя с аннотацией @Subscribe.

1 симпатия

Спасибо.