如何使用GXT 3.0屏蔽应用程序

时间:2013-11-08 20:53:56

标签: gwt gxt

我一直在使用GWT 2.3.0和GXT 2.2.5进行开发。我终于能够升级到GWT 2.4.0,并决定调查迁移到GXT 3.0需要什么,但是当我遇到麻烦时我就遇到了障碍。

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

XDOM.getBodyEl.mask();
XDOM.getBodyEl.unmask();

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

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

1 个答案:

答案 0 :(得分:2)

这是好消息/坏消息之一。好消息是El已经消失,不再混淆什么时候换行,何时到El.fly,何时保存参考等等。更多好消息:新版本被称为{{1} },并将XElement转换为Element,您只需转换(java cast或jso XElement):

.cast()

无论哪种方式都有效,没有开销。 El的所有魔力,没有任何混乱。

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

此更改是尝试执行GWT Way的更大策略的一部分,简化了执行任何操作所需的指南数量,并消除了GXT对现有GWT功能的一些重复。当你看看GWT多年来如何发展时,大多数重复都是有意义的,当GXT需要比GWT提供的功能更多时,其余的通常都有意义(布局面板与布局容器,Element elt = ...; XElement oneWay = elt.cast(); XElement theOtherWay = (XElement) elt; vs { {1}},RootLayoutPanel vs Viewport等)。 GXT现在使用GWT的其他领域:HasDataStores小部件,HTML和其他字符串格式(Label除外,SafeHtml加上真棒) ,支持RPC / RequestFactory / any-else-that-like-like-an-object,XTemplates API,Editor框架等。

坏消息:

既然很容易从任何事情中获得SafeHtmlTemplates,大多数将事物转换为Cell对象的便捷方法也都消失了。 XElement仍然存在,但它现在只做了一些事情,主要是ElXDOM因任何原因无法做到的事情(旁注:GWT的DOM类现在至少有一半被弃用,可能会在GWT 3左右消失)。

所以,当你得到你想要做的事情的dom元素(比如mask)时,你必须先抛出它。在你的身体元素掩盖的情况下,这在GXT 3中看起来有点像这样:

Document

你也可以抓住Mask类并以这种方式执行(这次使用java强制转换来证明它的全部相同):

DOM