我有一个简单的gxt窗口:
public class MainWindow extends Window {
public MainWindow() {
Label test = new Label("Test");
add(test);
}
}
我想从UiBinder描述相同的窗口。这段代码可以完美地工作:
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:gxt="urn:import:com.extjs.gxt.ui.client.widget">
<gxt:Window>
</gxt:Window>
</ui:UiBinder>
但是当我在gxt:Window元素中添加
<gxt:Label>Test</gxt:Label>
时出现错误:[ERROR] Found unexpected child element Element <gxt:Label>
我做错了什么?窗口元素有什么期望?
最佳答案
Ext GWT 2.x不支持UiBinder(原因是缺少公共API来在GWT中创建自定义元素解析器:http://code.google.com/p/google-web-toolkit/issues/detail?id=4461)。
您可以添加组件gxt:Windows
,仅此而已,您不能在gxt:Window
下添加子元素,因为对于任何gxt:Window超类都没有元素解析器。 GWT的面板扩展了GWT的HasWidgets
,并且有一个元素解析器:HasWidgetsParser,它为每个子元素调用add()
。
可以解决此问题,我想这就是他们为Ext GWT 3 beta所做的事情,因为它声称“完全支持UiBinder”,因此您可以尝试一下。
关于java - 如何用UiBinder描述GXT窗口?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8907071/