Вы можете использовать свой настраиваемый виджет в коде UiBinder. Это то, что вы делаете? Просто импортируйте пакет, в котором ваш пользовательский виджет находится в отдельном пространстве имен. Скажем виджет WeatherReport находится в пакете com.my.app.widgets и пространство имен вы хотите использовать мой, импорт выглядит следующим образом:
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:my="urn:import:com.my.app.widgets">
Теперь вы можете добавить WeatherReport объекты UiBinder кода, как это:
<g:HTMLPanel>
<my:WeatherReport ui:field="weather" />
</g:HTMLPanel>
ВИДЕТЬ official GWT documentation для получения дополнительной информации.
Использование ModalHeader, ModalBody и так далее в UiBinder работает точно так же. Импортируйте соответствующий пакет и используйте компоненты, вот простой пример:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:b="urn:import:org.gwtbootstrap3.client.ui">
<b:ModalBody>
<b:Row>
<b:Column size="MD_12">
<b:Input ui:field="passwordInput" type="PASSWORD" />
</b:Column>
</b:Row>
<b:ModalFooter">
<b:Button ui:field="saveButton" text="Save" type="PRIMARY" />
<b:Button ui:field="cancelButton" text="Cancel" />
</b:ModalFooter>
</b:ModalBody>
</ui:UiBinder>
Да, это на правильном пути для того, чего я надеюсь достичь. Но как будет выглядеть версия java версии WheaterReport, распространит ли она Modal? Кроме того, не должен находиться внутри , правильно? –
Java-часть компоненты _WeatherReport_ выглядит следующим образом: 'общественный класс WeatherReport расширяет ModalBody { частные статический WeatherReportUiBinder UiBinder = GWT .create (WeatherReportUiBinder.class); интерфейс WeatherReportUiBinder расширяет UiBinder <Втулка, WeatherReport> { } общественного WeatherReport() { надстройка (uiBinder.createAndBindUi (это)); } } ' –
И вот как я использую его с виджетами _Modal_: ' Modal modal = new Modal(); modal.setClosable (true); Виджет WeatherReport = новый WeatherReport(); modal.add (виджет); modal.show(); ' Если вы найдете более элегантную интеграцию, я все уши :-) –