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 に答える