2

是否有可能以某种方式从 Vaadin 的给定窗口获取当前显示的通知?查看 Window API,我只能看到几个showWindow()方法。

那么,有谁知道是否有一些功能可以获取当前显示的通知(如果有任何通知存在,那就是)?

4

2 回答 2

3

我不相信目前有任何方法可以做到这一点。

您可以覆盖 Window#showNotification(Notification) 以自己跟踪这一点,但据我所知,客户端不会告诉服务器通知已关闭 => 无法“重置”此标志。

(私有方法 Window#addNotification 在链接列表中跟踪要发送到浏览器的通知,但 Window#paintContent(PaintTarget) 会在将通知发送到浏览器后立即清除该列表)

于 2012-08-21T14:05:33.210 回答
1

通过反射:

private boolean isNotified(String notif) throws SecurityException, NoSuchFieldException,
IllegalArgumentException, IllegalAccessException {
    Page current = Page.getCurrent();

    Field f = current.getClass().getDeclaredField("notifications");
    f.setAccessible(true);
    List<Notification> notifications = (List<Notification>) f.get(current);
    boolean found = false;
    if (notifications != null) {
        for (Notification notification : notifications) {
            if (notification.getCaption() == notif) {
                found=true;
            }
        }
    }
    return found;
}
于 2013-08-12T09:51:34.437 回答