在等待子窗口

时间:2016-03-22 16:27:28

标签: vaadin vaadin7

我是Vaadin的新手并且可以使用一些帮助。

方案: 我的webapp有一个名为“import”的按钮,当你点击它时,你可以选择一个要导入的文件然后它会打开一个显示进度的新窗口。在导入过程中,程序会读取文件的内容,在某些情况下,它需要用户提供一些额外的信息才能继续。在这种情况下,我想打开一个aditional窗口(一个简单的输入文本字段和一个输入按钮),用户可以在其中输入缺少的信息。只有当用户点击进入按钮时,程序才会继续处理文件的导入。

我尝试过: 我创建了一个扩展Window的类“ImportWindow”。 在这个类中,我在一个名为“FileReader”的类中调用一个名为“handleFileContent()”的方法,该类读取文件的内容。 我用扩展Window创建了一个额外的类“AdditionalInfoPopUp”。 当“handleFileContent()”到达需要更多信息的文件的一部分时,我有以下代码:

AdditionalInfoPopUp apwindow = new AdditionalInfoPopUp();
UI.getCurrent().addWindow(apwindow);

while (!apwindow.isCompleted()){
    // wait for user input
    try {
        Thread.sleep(5000);
    } catch(InterruptedException ex) {
        Thread.currentThread().interrupt();
    }
}

“isCompleted()”是一个返回布尔值的方法,当点击新的AdditionalInfoPopUp中的输入按钮时,我将其设置为true。

问题: ExtraInfoPopUp永远不会打开。如果我删除了while循环,那么当程序读取文件的其余部分时它会打开。但我需要立即打开它,所以我可以在继续之前获得附加信息。

我试过寻求帮助,但我找不到任何东西。所以我希望这里有人可以提供帮助。

1 个答案:

答案 0 :(得分:0)

您需要先读取所有上传文件。

然后您可以添加逻辑以询问用户其他信息。

如果在后台线程read this完成处理。