2012-01-18 70 views
1

我有一個簡單的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添加<gxt:Label>Test</gxt:Label>:Window元素我有錯誤:

[ERROR] Found unexpected child element Element <gxt:Label> 

我做什麼了? Window元素有哪些期望?

回答

1

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支持」,所以你可以嘗試。