UiBinder работает с ToggleButton

Мне нравится новый GWT2 UiBinder, однако неясно, достижимы ли определенные вещи с помощью декларативного стиля пользовательского интерфейса.

Например, ToggleButton принимает экземпляры изображения только во время создания (нет сеттеров для изображений вверх/вниз). Насколько я понимаю, UiBinder работает по принципу отражения JavaBean, где назначаемые атрибуты сопоставляются с соответствующими сеттерами. Возможен ли этот стиль с такими виджетами, как ToggleButton, где определенные атрибуты должны быть указаны во время создания?

<g:ToggleButton ui:field="myBtn"></g:ToggleButton>

person EnToutCas    schedule 23.12.2009    source источник


Ответы (3)


Вы можете создать эти виджеты с помощью @UiFactory или предоставить его с помощью @UiField(provided=true)

См. http://code.google.com/webtoolkit/doc/latest/DevGuideUiBinder.html#Using_a_widget

person Jason Hall    schedule 23.12.2009
comment
Спасибо за ответ, но я должен сказать, что это отстой. В итоге я создал свой собственный подкласс ToggleButton, предоставляя изображение вверх/вниз в конструкторе, а в ui.xml ссылаюсь на свой настраиваемый виджет... - person EnToutCas; 24.12.2009

@Matt Moriarity: Спасибо за подсказку! Я обнаружил, что должен был сделать это так:

<g:ToggleButton ui:field="foo">
    <g:upFace><img src="images/bar.png"/></g:upFace>
</g:ToggleButton>

Если вы не укажете другие начертания (например, downFace), это изображение будет использоваться для всех состояний кнопки.

Изменить: я думаю, вы используете ui:image, когда формально указываете внешний ресурсы?

person z0r    schedule 21.04.2010

Попробуйте что-то вроде этого:

<g:ToggleButton>
  <ui:image src="..." />
</g:ToggleButton>
person Matt Moriarity    schedule 05.01.2010