如何用UiBinder描述GXT窗口?

时间:2012-01-18 08:19:07

标签: java xml gwt gxt uibinder

我有一个简单的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>

我做错了什么?在Window元素中有什么期望?

1 个答案:

答案 0 :(得分:1)

Ext GWT 2.x不支持UiBinder(原因是缺少在GWT中创建自定义元素解析器的公共API: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”,所以你可以试试。