Gwt 如何在GXT 3.0中屏蔽应用程序

Gwt 如何在GXT 3.0中屏蔽应用程序,gwt,gxt,Gwt,Gxt,我一直在使用GWT2.3.0和GXT2.2.5进行开发。我最终能够升级到GWT2.4.0,并决定研究迁移到GXT3.0需要什么,但一开始我就遇到了一个障碍 应用程序通过屏蔽浏览器来阻止用户。我使用以下命令执行此操作: XDOM.getBodyEl.mask(); XDOM.getBodyEl.unmask(); 我注意到的第一件事是,在3.0中,XDOM不再具有getBodyEl()方法,因此我无法从应用程序中的任何位置检索顶级文档小部件。我确实看到现在有一个Mask类,但是因为它需要一个元素

我一直在使用GWT2.3.0和GXT2.2.5进行开发。我最终能够升级到GWT2.4.0,并决定研究迁移到GXT3.0需要什么,但一开始我就遇到了一个障碍

应用程序通过屏蔽浏览器来阻止用户。我使用以下命令执行此操作:

XDOM.getBodyEl.mask();
XDOM.getBodyEl.unmask();
我注意到的第一件事是,在3.0中,XDOM不再具有getBodyEl()方法,因此我无法从应用程序中的任何位置检索顶级文档小部件。我确实看到现在有一个Mask类,但是因为它需要一个元素参数才能工作,所以我仍然需要一种相当简单的方法来获取documentbody元素


我尝试过搜索Sencha论坛,但没有成功。有没有关于我如何做到这一点的建议?

这是一个好消息/坏消息情况。好消息是,
El
已经不存在了,没有更多关于何时包装、何时飞行、何时保存引用等的混淆。更多好消息:新版本名为
XElement
,要将
元素
转换为
XElement
,只需进行强制转换(java强制转换或jso
.cast()
):

无论哪种方法都有效,没有开销。艾尔的所有魔力,没有任何困惑

除了坏消息。但首先,还有一些好消息:

这一变化是试图以GWT方式做事的更大战略的一部分,简化了做任何事情所需的指南数量,并消除了GXT对现有GWT特性的一些重复。当您观察GWT多年来的发展情况时,大多数重复都是有意义的,而当GXT需要比GWT提供的功能多一点时(布局面板与布局容器,
RootLayoutPanel
vs
Viewport
HasData
vs
Stores
,等等),其余的重复都是有意义的。GXT现在使用GWT的其他领域:
HTML
Label
小部件、
SafeHtml
和其他字符串格式(除了
XTemplates
,它是
SafeHtmlTemplates
加上awesome),支持RPC/RequestFactory/任何看起来像对象的东西,
Cell
API,编辑器框架,等等

坏消息:

现在,从任何东西中获取
XElement
都很容易,大多数将事物转换为
El
对象的方便方法也都不存在了
XDOM
仍然存在,但它现在只做了一些事情,大部分是
DOM
Document
出于任何原因不能做的事情(旁注:GWT的
DOM
类现在至少有一半被弃用,可能会在GWT3中消失)

因此,当您获得要处理的dom元素(如mask)时,必须首先强制转换它。在身体元素遮罩的情况下,这看起来有点像GXT 3:

Document.get().getBody().<XElement>cast().mask("Loading...");//or null if you don't want text
Document.get().getBody().<XElement>cast().mask("Loading...");//or null if you don't want text
Mask.mask((XElement) Document.get().getBody(), "Loading...");