如何在vanilla GWT中隐藏模态对话框后面的当前页面?

Chr*_*ris 3 user-interface gwt login

我已经构建了一个登录组合,我在我的应用程序入口点显示给用户.在输入用户名和密码后,我将通过RemoteService将用户名和密码发送到服务器,并将收到包含ClientSession的对象.如果ClientSession是有效对象(已识别的用户名和密码),我希望显示主应用程序面板,否则我想再次显示登录对话框(带有错误消息).

我的问题是,在异步调用服务器期间,如何屏蔽屏幕,以便用户在从服务器获取会话时无法点击任何内容?

我知道登录应该很快,但Session对象包含用于生成主面板的当前用户的许多客户端缓存值.这可能需要几分之一秒或最多5秒(遗憾的是我无法控制底层基础设施的速度)所以我想屏蔽屏幕直到达到超时然后允许用户再次尝试.

在使用GWT Ext之前我已经完成了这个确切的操作,但不幸的是,vanilla GWT似乎有更少的样本.

谢谢

克里斯

Isa*_*ett 6

GWT类PopupPanel有一个可选的"玻璃面板",可阻止与下面页面的交互.

final PopupPanel popup = new PopupPanel(false, true); // Create a modal dialog box that will not auto-hide
popup.add(new Label("Please wait"));
popup.setGlassEnabled(true); // Enable the glass panel
popup.center(); // Center the popup and make it visible
Run Code Online (Sandbox Code Playgroud)