gpt4 book ai didi

vaadin - 使用 Vaadin 完全导出 CSV 文件后显示通知

转载 作者:行者123 更新时间:2023-12-02 03:53:36 25 4
gpt4 key购买 nike

我有以下代码:

Button export = new Button("CSV");
export.addListener(new ClickListener()
{
public void buttonClick(ClickEvent event)
{
CsvExport csvExport;
csvExport = new CsvExport(_table);
csvExport.setDisplayTotals(false);
csvExport.setDoubleDataFormat("0");
csvExport.excludeCollapsedColumns();
csvExport.setReportTitle("Document title");
csvExport.setExportFileName("Nome_file_example.csv");
csvExport.export();

getWindow().showNotification("Document saved", "The document has been exported.");
}
}

我希望通知仅在文件导出和下载后出现,但实际上通知不起作用,可能是因为它没有“等待”语句

csvExport.export();

完成。如果我评论它,通知会起作用。

有人有什么建议吗?

非常感谢,

最佳答案

您需要将工作拆分到一个单独的线程中,然后提供一种“稍后”通知用户的方法。

所以,首先,创建一个线程...如果你在 Java EE 上,使用内置的线程池,否则使用其他东西(我们在 tomcat 上,我们自己推出,以便我们更好地控制).

然后,当您完成后,同步您的线程,回到您的 UI 类(我们使用 Groovy 中的闭包,但您可以创建自己的监听器),并调用该方法来通知您的用户。 window.showNotification('全部完成')

所以这是棘手的部分,您已经通知了您的用户,但是 Vaadin 已经发回了“点击”响应...所以服务器部分认为它已通知用户,但它无法向用户显示然而......你需要一个progress indicator在您的页面上,因为它每 5 秒询问一次服务器是否有任何更改。

还有一些'push' plugins ,但我发现在我们启动线程的大多数地方,我们都希望显示“加载”动画,因此进度指示器运行良好。

关于vaadin - 使用 Vaadin 完全导出 CSV 文件后显示通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13531696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com