Как описать GXT Window из UiBinder? - PullRequest
1 голос
/ 18 января 2012

У меня есть простое окно 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:Label>Test</gxt:Label> в элемент gxt: Window, у меня появляется ошибка:

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

Что я делаю неправильно?Что ожидается в элементе Window?

1 Ответ

1 голос
/ 18 января 2012

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",так что вы можете попробовать это.

...