3.5.4.4. NotificationFacet

NotificationFacet facet 可以预配置 通知消息。用声明式的方法定义通知消息,而可以替代 Notifications.create() 方法。NotificationFacet 用界面 xml 描述的 facets 元素定义。

组件的 xml 名称: notification

示例:

<facets>
    <notification id="notification"
                  caption="msg://notificationFacet"
                  description="msg://notificationDescription"
                  type="TRAY"/>
</facets>

NotificationFacet 配置的界面,也可以显式的调用 show() 方法展示:

@Inject
protected NotificationFacet notification;

public void showNotification() {
    notification.show();
}

notification 有如下属性:

  • onAction 属性设置 操作 标识符。表示当该操作完成后,需要显示通知消息。

    <actions>
        <action id="notificationAction"/>
    </actions>
    <facets>
        <notification id="notification"
                      caption="msg://notificationFacet"
                      onAction="notificationAction"
                      type="TRAY"/>
    </facets>
  • onButton 属性设置 按钮 标识符。表示当点击该按钮,需要显示通知消息。

    <facets>
        <notification id="notification"
                      caption="msg://notificationFacet"
                      onButton="notificationBtn"
                      type="TRAY"/>
    </facets>
    <layout>
        <button id="notificationBtn"
                caption="Show notification"/>
    </layout>
  • 如果 contentMode 属性设置为 ContentMode.HTML,可以用 htmlSanitizerEnabled 属性为通知内容启用 HTML 清理功能。

    <facets>
        <notification id="notificationFacetOn"
                      caption="NotificationFacet with Sanitizer"
                      contentMode="HTML"
                      htmlSanitizerEnabled="true"
                      onButton="showNotificationFacetOnBtn"
                      type="TRAY"/>
        <notification id="notificationFacetOff"
                      caption="NotificationFacet without Sanitizer"
                      contentMode="HTML"
                      htmlSanitizerEnabled="false"
                      onButton="showNotificationFacetOffBtn"
                      type="TRAY"/>
    </facets>

    htmlSanitizerEnabled 属性会覆盖全局的 cuba.web.htmlSanitizerEnabled 配置。