के रूप में करें I UIBENDER टेम्पलेट में पृष्ठभूमि-छवि के रूप में ClientBundle
से एक छवि का उपयोग करने का प्रयास कर रहा हूं। मैंने एक गाइड के रूप में this discussion का उपयोग किया, लेकिन यह काम करने में असमर्थ था।क्लाइंटबंडल छवि का उपयोग पृष्ठभूमि-छवि
मेरी जावा वर्ग में मेरे पास है:
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>
इस बिंदु पर
पहले से ही मेरी आईडीई "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 Groups discussion में यह सुझाव दिया है कि इस <ui:data>
बजाय <ui:style>
साथ काम कर सकते हैं, तो मुझे लगता है कि काम करने के लिए कोशिश की। लेकिन ऐसा लगता है कि आप दोनों सीएसएस शैलियों (उदा। मेरी paidIcon()
विधि) और <ui:data>
संसाधनों में डेटा स्रोत शामिल नहीं कर सकते हैं। मैं <ui:data>
पर अधिक दस्तावेज नहीं ढूंढ पाया, इसलिए मैं वास्तव में इसके साथ स्ट्रॉ पर बस पकड़ रहा हूं।
हम्म की कोशिश की है, लेकिन इसके साथ त्रुटि "त्रुटि: स्थगित बाध्यकारी परिणाम प्रकार 'com.example.client.PriceButton.Styles.PriceButtonStyles' सार नहीं होना चाहिए।" मेरे एंट्रीपॉइंट के शीर्ष पर मैं जीडब्ल्यूटी को कॉल कर रहा हूं। बनाएं (PriceButton.Styles.PriceButtonStyles.class) .ensureInjected()। मेरे पास जावा कोड के समान पैकेज में PriceButtonStyles.css है। इसके अलावा, मुझे ऊपरी स्तर के इंटरफ़ेस को "स्टाइल" में बदलना पड़ा, क्योंकि इसे उसी नाम से एम्बेडेड इंटरफ़ेस नहीं होना पसंद था। –
दो इंटरफेस को एक ही नाम देने के लिए खेद है। मुझे लगता है कि शैली में इंजेक्ट करने के लिए आपकी त्रुटि कॉल से आती है। आपको < > और() –
के बीच ऊपरी-स्तरीय इंटरफ़ेस डालने की आवश्यकता है, आपको यह सुनिश्चित करने के लिए कि आपकी छवि * sprited * में नहीं है, आपको संभवतया '@ImageOptions (repeatStyle = RepeatStyle.Both)' एनोटेशन को अपनी 'छवि संसाधन' विधि में जोड़ना चाहिए कुछ ब्राउज़रों (अर्थात्, आईई 6/7) –