У меня есть задача добавить составной виджет в основной файл 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>
Я также попытался настроить объявление ui: field в классе viewImpl, но я получил ошибку во время компиляции:
ОШИБКА] В @UiField myClass типы полей шаблона и поля владельца не совпадают: com.google.gwt.dom.client.Element нельзя назначить com ... client.view.MyClass
Когда я взял объявление @UiField из viewImpl и скомпилировал ui.xml, но виджет не отображался при загрузке страницы.
Я создал другой класс составного виджета и попытался продублировать его с помощью всего лишь виджета кнопки.
Используя firebug, я вижу, что элемент был добавлен на главную страницу ui.xml, но он также не отображается, поэтому мое связывание не совсем завершено.
Что мне здесь не хватает?