这是好消息/坏消息的情况之一。好消息是它El
已经消失了,不再混淆何时包装,何时El.fly
,何时保存引用等。更多好消息:新版本被调用XElement
,并且将 anElement
转换为 an XElement
,您只需强制转换(java演员或jso .cast()
):
Element elt = ...;
XElement oneWay = elt.cast();
XElement theOtherWay = (XElement) elt;
无论哪种方式都有效,没有开销。El的所有魔法,没有任何混乱。
除了坏消息。但首先,还有一些好消息:
此更改是尝试以 GWT 方式做事的更大战略的一部分,它简化了做任何事情所需的指南数量,并消除了 GXT 对现有 GWT 功能所做的一些重复。当您查看 GWT 多年来的增长方式时,大部分重复都是有意义的,而当 GXT 需要比 GWT 提供的功能更多的功能时(布局面板与布局容器、RootLayoutPanel
vs Viewport
、HasData
vsStores
等),其余部分通常是有意义的。GXT 现在使用 GWT 东西的其他领域:HTML
、Label
小部件SafeHtml
和其他字符串格式(除了XTemplates
,SafeHtmlTemplates
非常棒),支持 RPC/RequestFactory/anything-else-that-looks-like-an-object、Cell
API、编辑器框架等
坏消息:
既然从任何事物中获取事物就是那么容易,那么XElement
将事物转换为El
对象的大多数便捷方法也已不复存在。XDOM
仍然存在,但它现在只做一些事情,主要是出于某种原因不能做DOM
或Document
不能做的事情(旁注:GWT 的DOM
类现在至少有一半被弃用,可能会在 GWT 3 左右消失)。
所以,当你得到想要做某事的 dom 元素时(比如 mask),你必须先转换它。在你的身体元素掩蔽的情况下,这在 GXT 3 中看起来有点像这样:
Document.get().getBody().<XElement>cast().mask("Loading...");//or null if you don't want text
您也可以获取 Mask 类并这样做(这次使用 java 强制转换来证明它都是一样的):
Mask.mask((XElement) Document.get().getBody(), "Loading...");