Программные действия

Любой подходящий компонент может получать действия, созданные и назначаемые программно в контроллере экрана. Этот способ прост, но может сделать контроллер более громоздким и не позволяет переиспользовать действие в XML.

Ниже пример, в котором кнопка покажет пользователю "Hello" при нажатии:

  1. Инжектируйте компонент в контроллер экрана:

    @ViewComponent
    private JmixButton actionButton;
  2. Задайте действие, создав экземпляр класса BaseAction:

    @Subscribe
    public void onInit(final InitEvent event) {
        actionButton.setAction(
                new BaseAction("action")
                        .withText("Click me!")
                        .withHandler(actionPerformedEvent -> notifications.show("Action performed!")));
    }
Сравните этот подход с идентичным примером в разделе Собственные типы действий, который позволяет переиспользовать действия в разных экранах.