我有一個任務將複合小部件添加到主ui.xml文件中,但由於某種原因它不起作用。這裏是我的小部件代碼:如何使用uiBinder將複合小部件嵌入到主ui.xml文件中?
public class MyClass extends Composite {
@UiTemplate("MyClass .ui.xml")
interface MyClassUiBinder extends UiBinder<Widget, MyClass > {
}
private static MyClassUiBinder uiBinder = GWT.create(MyClassUiBinder.class);
@UiField Label label;
public MyClass() {
initWidget(uiBinder.createAndBindUi(this));
} ...
然後在我的主要viewImpl.ui.xml類: 我宣佈類包:
... xmlns:u="urn:com... client.view">
,然後將小部件本身:
<g:HTMLPanel ui:field="mainPanel" styleName="{style.mainPanel}">
<table align="center">
<tr>
<td align="center">
<u:MyClass/>
</td>
</tr>
我也嘗試在viewImpl類中設置一個ui:field聲明,但在編譯時我得到一個錯誤:
ERROR在@UiField MyClass的,模板字段和所有者字段類型不匹配:com.google.gwt.dom.client.Element是不能分配給COM ... client.view.MyClass
當我從viewImpl和它編譯的ui.xml中取出@UiField聲明時,但是在加載頁面時該小部件不顯示。
我創建了另一個複合控件類,並試圖用一個按鈕控件複製它。
使用firebug我看到該元素已被添加到主ui.xml頁面,但它也不顯示,所以我的綁定不完全完成。
我在這裏錯過了什麼?
它在HTML面板中。我只是沒有顯示該代碼。 – 2011-12-14 14:36:42