Я пытаюсь, чтобы мой виджет, определенный в UiBinder, отображался встроенным, но я не могу. Мой текущий код:
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder' xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:style>
.section {
border: 1px solid #000000;
width: 330px;
padding: 5px;
display: run-in;
}
</ui:style>
<g:HTMLPanel>
<div class="{style.section}">
<div ui:field="titleSpan" class="{style.title}" />
<div class="{style.contents}">
<g:VerticalPanel ui:field="messagesPanel" />
</div>
</div>
</g:HTMLPanel>
</ui:UiBinder>
Это прекрасно работает с точки зрения того, как виджет выглядит внутренне, но я хочу бросить кучу этих виджетов в FlowPanel и сделать так, чтобы они отображались при изменении размера окна. HTMLPanel - это div, но я не могу назначить атрибут display. Я не могу форсировать имя стиля, так как следующее выдает ошибку:
<g:HTMLPanel styleNames="{style.section}">
И я могу назначить дополнительный стиль, но он не применяет настройку дисплея.
<g:HTMLPanel addStyleNames="{style.section}">
Это отображает границу и устанавливает размер, как и ожидалось, но не течет. Firebug показывает стили на div: границы, ширина и отступы, но без отображения.
Есть ли способ сделать виджет в UiBinder, чтобы он отображал встроенный вид вместо блока? И если да, могу ли я сделать его совместимым с наличием внутри VerticalPanel (могу ли я сделать это без превращения всего виджета в чистый HTML без каких-либо виджетов GWT)?
PS : я видел вопрос 2257924 , но в последнее время на него не было никаких ответов, и он, кажется, сосредоточился на получении тега, а не на конкретной компоновке. Меня не волнует напрямую, если я смогу просто сделать тег верхнего уровня для моего виджета встроенным, я счастлив.