Bir UIBInder şablonunda bir arka plan görüntüsü olarak bir ClientBundle
görüntüyü kullanmaya çalışıyorum. Rehber olarak this discussion'u kullandım, ancak çalışmaya başlayamadı. Benim Java sınıftaClientBundle görüntüsünü background-image olarak kullanma
Ben:
public static interface PriceButtonStyles extends ClientBundle
{
String paidIcon();
@ClientBundle.Source("paid_button_53x31.png")
DataResource paid_buttonAsDataResource();
}
@UiField
PriceButtonStyles priceButtonStyle;
Ve ardından ilgili şablon dosyasında ı başvuru onu istiyorum: Bu noktada Zaten
<ui:style field="priceButtonStyle" type="com.example.client.PriceButton.PriceButtonStyles">
@url paidIconUrl paid_buttonAsDataResource;
.paidIcon {
background: paidIconUrl 0 0 no-repeat;
}
</ui:style>
benim IDE "paidIconUrl" dizesini gösteriyor kırmızı, o şey belirten pek doğru değil:
Bunu çalıştırmayı denediğinizde
Gerçekten de ben alıyorum:
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
Biraz ileride
Google Groups discussion yılında
<ui:data>
yerine
<ui:style>
ile işe yarayabilecek ileri sürülmektedir, bu yüzden bu işi yapmaya çalıştı. Ancak, hem CSS stillerini (ör.
paidIcon()
yöntemim) hem de
<ui:data>
kaynaklarında DataResources içeremezsiniz.
<ui:data>
üzerinde çok fazla belge bulamadım, bu yüzden gerçekten sadece payetle uğraşıyorum.
Hmm o çalıştı, ama ile bu hataları "HATA: Ertelenmiş bağlanma sonucu türü 'com.example.client.PriceButton.Styles.PriceButtonStyles' soyut olmamalı." Benim GirişNoktası ben GWT çağırıyorum üst kısmında. create (PriceButton.Styles.PriceButtonStyles.class) .ensureInjected(). Java koduyla aynı pakette PriceButtonStyles.css var. Ayrıca, aynı isimde gömülü arayüze sahip gibi değildi çünkü, "Stiller" üst düzey bir arayüz adlandırmak zorunda kaldı. –
verilen iki arayüzleri aynı ad için üzgünüm. Hatanızın stili enjekte etme çağrısından geldiğini düşünüyorum. Sen * içinde Muhtemelen emin görüntü * birleştirilmelidir değil yapmak için 'ImageResource' yöntemine' @ImageOptions (repeatStyle = RepeatStyle.Both) 'ek açıklama koymalısınız –
< > ve() arasındaki üst düzey şekilde sağlamalıyız bazı tarayıcılar (yani IE6/7) –