2012-03-29 24 views
1

私はVaadinに結果を検索するアプリケーションを書いています。フォームを使用して条件を指定し、表を使用して結果を表します。 私はまた、VaadinのWindow.Notificationで見つかった結果の量を表示したいと思います。 私の問題は、ユーザーがそれをクリックするまで通知がそこにとどまり、数秒後に消えないようにすることです。 大きな遅延時間を入力するだけの場合は、これらの通知をクリックせずに複数の検索を実行すると、すべての結果通知が相互にやり取りされます。したがって、それらをクリックして削除すると、以前の検索の結果が表示されます。 これは私が避けたいものです。Vaadinウィンドウで通知イベントを閉じる

通知はウィンドウに追加されていますが、私が見る限り、それらの参照を更新することはできません。すでに存在する場合は、現在の通知を変更することはできません。それがペイントされた後、それはcom.vaadin.ui.WindowのLinkedList<Notification> notificationsから削除されます

私が見ていた事の1つは、Vaadinがあなたがそれをクリックした後の通知を閉じて、各検索で前の通知が削除され、新しい検索で新しい通知が追加されます。 しかし、これまでのところ、私はそれがどのように行われているか見つけることができません。

htmlでの通知はdivとして表示されます。だから多分私はVaadinでdivを削除するために呼び出すことができるjavascriptがありますか?

定義された遅延の後に通知を閉じるためにタイマーがどのように機能するか知っていますか?これは私が呼ぶことができるjavascriptを呼び出しますか?

答えて

1

通知の遅延が-1の場合は、ユーザーがクリックする必要があります。通知はタイプTYPE_ERROR_MESSAGEのでない限り、あなたは通知オブジェクトを自分で作成する必要があります。

Notification message = new Notification("Message", Notification.TYPE_HUMANIZED_MESSAGE); 
message.setDelayMsec(-1); 
getWindow().showNotification(message); 

通知の非表示イベントをリッスンするVaadinにはメカニズムがありません。 VNotificationから派生した独自のウィジェットを作成して、この条件をサーバーに送り返すことができます。

+0

はい、遅延を-1に設定すると、結果通知を閉じることなく他の操作は実行できません。私がしたいことは、結果と結果通知を表示することです。ユーザーは結果を処理することができ、まだ合計結果数を確認することができます。私はVaadinにこれを行うためのメカニズムがないことを知っていますが、Vaadinは遅延が経過した後、または通知がクリックされた後にトリガーしたいアクションを行います。この行動を直接呼び出すことができるかどうかを知りたい。私はVNotificationに関するあなたの提案を見ていきます – gizmo753

+0

@ gizmo753自分のウィジェットを開発しなければならないようなサウンド –

関連する問題