3.5.7. Уведомления
Уведомления представляют собой небольшие окна, всплывающие в центре или в углу главного окна приложения. Они могут исчезать автоматически или когда пользователь щелкает по экрану или нажимает Esc.
Для того чтобы показать уведомление, необходимо инжектировать в контроллер экрана бин Notifications
и воспользоваться его fluent-интерфейсом. В примере ниже уведомление показывается, когда пользователь щелкает по кнопке:
@Inject
private Notifications notifications;
@Subscribe("sayHelloBtn")
protected void onSayHelloBtnClick(Button.ClickEvent event) {
notifications.create().withCaption("Hello!").show();
}
Уведомление может иметь дополнительное описание, которое показывается под заголовком более мелким шрифтом:
@Inject
private Notifications notifications;
@Subscribe("sayHelloBtn")
protected void onSayHelloBtnClick(Button.ClickEvent event) {
notifications.create().withCaption("Greeting").withDescription("Hello World!").show();
}
Уведомления могут быть следующих типов:
-
TRAY
- уведомление показывается в правом нижнем углу приложения и исчезает автоматически. -
HUMANIZED
- стандартное уведомление в центре экрана, исчезает автоматически. -
WARNING
- предупреждение. Исчезает при щелчке по экрану. -
ERROR
- уведомление об ошибке. Исчезает при щелчке по экрану.
Тип по умолчанию - HUMANIZED
. Другой тип можно указать в параметре метода create()
:
@Inject
private Notifications notifications;
@Subscribe("sayHelloBtn")
protected void onSayHelloBtnClick(Button.ClickEvent event) {
notifications.create(Notifications.NotificationType.TRAY).withCaption("Hello World!").show();
}
В тексте можно использовать символы \n
для перевода строк. Для отображения HTML необходимо указать соответствующий параметр в методе withContentMode()
:
@Inject
private Notifications notifications;
@Subscribe("sayHelloBtn")
protected void onSayHelloBtnClick(Button.ClickEvent event) {
notifications.create()
.withContentMode(ContentMode.HTML)
.withCaption("<i>Hello World!</i>")
.show();
}
При использовании HTML обязательно экранируйте данные, полученные из БД, во избежание инжекции вредоносного кода.
Остальные методы, такие как withHideDelayMs()
, withPosition()
и withStyleName()
, позволяют изменить параметры отображения и поведения уведомления.