NotificationFacet

Фасет NotificationFacet позволяет предварительно настраивать уведомления. Декларативное определение уведомления заменяет существующий метод Notifications.create().

XML-имя компонента: notification.

Атрибуты

NotificationFacet определяется в элементе facets XML-дескриптора экрана и имеет следующие атрибуты:

Вы можете привязать NotificationFacet к кнопке или действию, чтобы уведомление появлялось после нажатия кнопки или выполнения действия. Для этого используйте следующие атрибуты:

  • onAction

<window xmlns="http://jmix.io/schema/ui/window"
        caption="msg://notificationFacetScreen.caption">
    <actions>
        <action id="facetAction"
                caption="Action subscription"/>
    </actions>
    <facets>
        <notification id="actionNotification"
                      caption="Action performed"
                      type="TRAY"
                      onAction="facetAction"/>
    </facets>
    <layout>
    </layout>
</window>
  • onButton

<window xmlns="http://jmix.io/schema/ui/window"
        caption="msg://notificationFacetScreen.caption">
    <facets>
        <notification id="buttonNotification"
                      caption="Button clicked"
                      type="HUMANIZED"
                      onButton="facetBtn"/>
    </facets>
    <layout>
        <button id="facetBtn"
                caption="Button subscription"/>
    </layout>
</window>

Вы также можете настроить отображение уведомлений ScreenFacet, используя метод show():

@Autowired
private NotificationFacet notificationFacet;

@Subscribe("btn")
public void onBtnClick(Button.ClickEvent event) {
    notificationFacet.show();
}

События и слушатели

Чтобы сгенерировать заглушку слушателя в Jmix Studio, выберите фасет в XML-дескрипторе экрана или на панели иерархии Jmix UI и используйте вкладку Handlers на панели инспектора Jmix UI.

В качестве альтернативы вы можете воспользоваться кнопкой Generate Handler на верхней панели контроллера экрана.

CloseEvent

CloseEvent обрабатывает закрытие уведомления. Например:

private static final Logger log = LoggerFactory.getLogger(NotificationFacetScreen.class);

@Subscribe("actionNotification")
public void onActionNotificationClose(Notifications.CloseEvent event) {
    log.info("Notification was closed");
}

Чтобы создать слушателя события программно, используйте метод addCloseListener().

CaptionProvider

CaptionProvider изменяет отображаемое название уведомления NotificationFacet.

@Install(to = "actionNotification", subject = "captionProvider")
private String actionNotificationCaptionProvider() {
    return "Changed caption";
}

Чтобы создать слушателя события программно, используйте метод setCaptionProvider().

DescriptionProvider

DescriptionProvider изменяет отображаемое описание уведомления NotificationFacet

@Install(to = "actionNotification", subject = "descriptionProvider")
private String actionNotificationDescriptionProvider() {
    return "Changed description";
}

Чтобы создать слушателя события программно, используйте метод setDescriptionProvider().

Все XML-атрибуты

Вы можете просматривать и редактировать применимые к фасету атрибуты с помощью панели инспектора Jmix UI в дизайнере экранов Studio.