在Vaadin窗口关闭通知事件

时间:2012-03-29 07:49:54

标签: java javascript html vaadin

我正在Vaadin写一个搜索结果的应用程序。表单用于指定条件,表用于表示结果。 我还想显示在Vaadin的Window.Notification中找到的结果数量。 我的问题是我希望通知留在那里直到用户点击它,所以它几秒钟后就不会消失。 如果您只输入较长的延迟时间,那么如果您没有点击这些通知并进行多次搜索,则所有结果通知都会相互重叠。因此,如果您再单击它们以删除它们,您将看到之前搜索的结果数量。 这是我想要避免的。

通知被添加到窗口中,据我所知,您无法获得对它们的引用来更新它们。因此,如果已存在通知,则无法更改当前通知。绘制后,它将从com.vaadin.ui.Window的LinkedList<Notification> notifications中删除

我看到的其中一件事是Vaadin在您点击它之后如何关闭通知,以便我可以在每次搜索之前执行相同操作,以便删除先前的通知并且新搜索会添加新通知。 但到目前为止,我无法找到它是如何完成的。

html中的通知显示为div。所以也许有一个我可以在Vaadin中调用的javascript删除那个div?

有没有人知道定时器如何在定义的延迟后关闭通知?这会调用我也可以调用的javascript吗?

1 个答案:

答案 0 :(得分:1)

如果通知延迟为-1,则必须由用户点击。除非通知类型为TYPE_ERROR_MESSAGE,否则您必须自己创建通知对象:

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

Vaadin中没有机制来监听通知的隐藏事件。您可以创建从VNotification派生的自己的小部件,将此条件传回服务器。

相关问题