Можно ли разбить экран ListView на компоненты при большом количестве зависимостей?

Добрый день! У меня есть такой контроллер экрана:

@Route(value = "policies", layout = MainView.class)
@ViewController("Policy.list")
@ViewDescriptor("policy-list-view.xml")
@LookupComponent("policiesDataGrid")
@DialogMode(width = "64em")
public class PolicyListView extends StandardListView<Policy> {

    @Autowired
    private transient DatabaseService databaseService;

    @Autowired
    private transient UiGenerator uiGenerator;

    @Autowired
    private transient UiComponents uiComponents;

    @ViewComponent
    private transient VerticalLayout detailsLayout;

    @ViewComponent
    private transient DataContext dataContext;

    @Autowired
    private transient Dialogs dialogs;

    @Autowired
    private transient Notifications notifications;

    @Autowired
    private transient Messages messages;

    @ViewComponent
    private transient DataGrid<Policy> policiesDataGrid;

    @ViewComponent
    private transient CollectionLoader<Policy> policiesDl;

    @ViewComponent
    private transient InstanceContainer<Policy> policyDc;

    @Autowired
    private transient PoliciesService policiesServiceCore;

    @Autowired
    private transient DialogWindows dialogWindows;

    @ViewComponent
    private transient JmixSplitLayout splitPolicy;

    @Autowired
    private transient AccessManager accessManager;

    @ViewComponent
    private transient JmixTextArea actionsField;
    @ViewComponent
    private transient JmixTextArea conditionsField;
    @ViewComponent
    private transient DropdownButton dropdownButton;
    @ViewComponent
    private transient FormLayout policiesForm;
    @ViewComponent
    private transient JmixDetails policiesDetails;

    @ViewComponent
    private transient JmixMultiSelectComboBox<Object> filterUserComboBox;

    @ViewComponent
    private transient TypedDateTimePicker<Date> filterUpdatedAtFromDateTimePicker;

    @ViewComponent
    private transient JmixMultiSelectComboBox<PolicyStatus> filterStatusComboBox;

    @ViewComponent
    private transient TypedDateTimePicker<Date> filterUpdatedAtToDateTimePicker;

    @ViewComponent
    private transient JmixMultiSelectComboBox<Object> filterDatabasesComboBox;

    @ViewComponent
    private transient TypedDateTimePicker<Date> filterCreatedAtToDateTimePicker;

    @ViewComponent
    private transient JmixMultiSelectComboBox<Object> filterNameComboBox;

    @ViewComponent
    private transient TypedDateTimePicker<Date> filterCreatedAtFromDateTimePicker;

    @ViewComponent
    private transient SettingsFacet settingsFacet;
}

В нем 29 зависимостей. SonarQube, который подключен к моему проекту, выдает предупреждение, что нежелательно в одном классе использовать больше 25 зависимостей. Собственно мой вопрос связан с тем, как-то можно разбить этот экран на составляющие компоненты или это невозможно в принципе?

Здравствуйте, @sanyakirilloff.

В экраны можно встраивать фрагменты пользовательского интерфейса.
Документация: Фрагменты :: Документация Jmix
Примеры: https://demo.jmix.ru/ui-samples/sample/fragments

С уважением,
Мария.

@m.orlova здравствуйте! спасибо)

@m.orlova небольшое уточнение: фрагменты появились начиная с версии 2.3, у меня стоит версия jmix 2.1.2. Я так понимаю мне нужно обновляться до самой последней версии, чтобы решить свою проблему?

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

1 симпатия

Понял, спасибо!