Я пытаюсь использовать изображение из ClientBundle
в качестве фонового изображения в шаблоне UIIBinder. Я использовал это обсуждение в качестве руководства, но не смог чтобы заставить его работать.
В моем классе Java у меня есть:
public static interface PriceButtonStyles extends ClientBundle
{
String paidIcon();
@ClientBundle.Source("paid_button_53x31.png")
DataResource paid_buttonAsDataResource();
}
@UiField
PriceButtonStyles priceButtonStyle;
И затем в соответствующем файле шаблона я ссылаюсь на него так:
<ui:style field="priceButtonStyle" type="com.example.client.PriceButton.PriceButtonStyles">
@url paidIconUrl paid_buttonAsDataResource;
.paidIcon {
background: paidIconUrl 0 0 no-repeat;
}
</ui:style>
Уже в этот момент моя IDE показывает строку "paidIconUrl" красным цветом, указывая на то, что что-то не так:
И действительно, когда я пытаюсь запустить его, я получаю:
ERROR: Type com.ecample.client.PriceButton.PriceButtonStyles does not extend com.google.gwt.resources.client.CssResource Element <ui:style field='priceButtonStyle' type='com.example.client.PriceButton.PriceButtonStyles'> (:7).
ERROR: Uncaught exception escaped. com.google.gwt.event.shared.UmbrellaException: One or more exceptions caught, see full set in UmbrellaException#getCauses
Далее в обсуждении групп Google предлагается это может работать с <ui:data>
, а не с <ui:style>
, поэтому я попытался заставить это работать. Но похоже, что вы не можете включить оба стиля CSS (например, мой метод paidIcon()
) и DataResources в ресурсы <ui:data>
. Мне не удалось найти много документации по <ui:data>
, поэтому я просто хватаюсь за соломинку.