Java 关闭Vaadin窗口中的通知事件

Java 关闭Vaadin窗口中的通知事件,java,javascript,html,vaadin,Java,Javascript,Html,Vaadin,我正在用Vaadin编写一个搜索结果的应用程序。表格用于指定标准,表格用于表示结果。 我还想显示在窗口中找到的结果数量。Vaadin通知。 我的问题是,我希望通知保持在那里,直到用户单击它,这样它不会在几秒钟后消失。 如果您只是输入了一个较大的延迟时间,那么如果您不单击这些通知并进行多次搜索,则所有结果通知都会相互传递。因此,如果您单击它们将其删除,您将看到以前搜索的结果量。 这就是我想要避免的 通知被添加到窗口中,就我所见,您无法获取对它们的引用来更新它们。因此,如果已经存在一个通知,则无法更

我正在用Vaadin编写一个搜索结果的应用程序。表格用于指定标准,表格用于表示结果。 我还想显示在窗口中找到的结果数量。Vaadin通知。 我的问题是,我希望通知保持在那里,直到用户单击它,这样它不会在几秒钟后消失。 如果您只是输入了一个较大的延迟时间,那么如果您不单击这些通知并进行多次搜索,则所有结果通知都会相互传递。因此,如果您单击它们将其删除,您将看到以前搜索的结果量。 这就是我想要避免的

通知被添加到窗口中,就我所见,您无法获取对它们的引用来更新它们。因此,如果已经存在一个通知,则无法更改当前通知。绘制后,它将从com.vaadin.ui.Window的
链接列表通知中删除

我在看的一件事是,在你点击通知后,Vaadin是如何关闭通知的,这样我就可以在每次搜索之前执行相同的操作,从而删除以前的通知,并在新的搜索中添加新的通知。 但到目前为止,我还不知道这是怎么做到的

html中的通知显示为一个div。那么,我可以在Vaadin中调用javascript来删除该div吗


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

如果通知延迟为-1,则必须由用户单击。除非通知类型为
type\u ERROR\u MESSAGE
,否则您必须自己创建通知对象:

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

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

如果通知延迟为-1,则用户必须单击它。除非通知类型为
type\u ERROR\u MESSAGE
,否则您必须自己创建通知对象:

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

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

是,但如果将延迟设置为-1,则在不关闭结果通知的情况下,无法执行其他操作。我想做的是显示结果和结果通知。用户可以处理结果,并且仍然可以看到总结果计数。我知道Vaadin中没有预见到这样做的机制,但Vaadin会在延迟秒过去后或单击通知时执行我想要触发的操作。我想知道是否可以直接调用此操作。我会考虑你关于这件事的建议VNotification@gizmo753听起来您必须开发自己的widgetyes,但是如果您将延迟设置为-1,则在不关闭结果通知的情况下无法执行其他操作。我想做的是显示结果和结果通知。用户可以处理结果,并且仍然可以看到总结果计数。我知道Vaadin中没有预见到这样做的机制,但Vaadin会在延迟秒过去后或单击通知时执行我想要触发的操作。我想知道是否可以直接调用此操作。我会考虑你关于这件事的建议VNotification@gizmo753听起来你必须开发自己的小部件