2010-08-10 12 views
20

मैं पहली बार जीडब्ल्यूटी क्लाइंटबंडल का उपयोग कर रहा हूं। मैं इंटरफेस है कि यह प्रदान करता है और यहाँ है कोड लिखा है:जीडब्ल्यूटी में क्लाइंटबंडल कैसे करें?

package edu.etf.fuzzy.client.login; 

import com.google.gwt.resources.client.ClientBundle; 
import com.google.gwt.resources.client.ImageResource; 

public interface Resources extends ClientBundle { 

@Source("logo_federacija.jpg") 
ImageResource logo(); 

@Source("shim.gif") 
ImageResource shim(); 
} 

मेरे सवाल यह है: मैं कैसे करूँ बताओ जहां वास्तव में इन संसाधनों (इस मामले में चित्र) पाया जा सकता है। क्या मुझे उन्हें रखना चाहिए: ए) इंटरफ़ेस के समान निर्देशिका में - (बदसूरत)? बी) कुछ विशिष्ट निर्देशिका में जो कभी नहीं बदला जा सकता है? सी) निर्देशिका में जो मैं चाहता हूं, लेकिन इसे निर्दिष्ट करने के लिए तंत्र होना चाहिए - (महान होगा)?

धन्यवाद।

उत्तर

24

मैं आमतौर पर संसाधनों (com.example.project.resource) के लिए एक नए पैकेज बना सकते हैं और (एक निर्देशिका में एक साथ, के रूप में) वहाँ ClientBundle इंटरफेस और उपयुक्त संसाधनों डाल - यह एक जावा फ़ाइल प्लस छवियों का एक गुच्छा, आगे अलग होने के लिए कोई आवश्यकता नहीं है , IMHO।

संसाधनों के पथ के लिए - आप उन्हें @Source("path") एनोटेशन के माध्यम से पास कर सकते हैं। उदाहरण के लिए, यदि आपके पास ClientBundle इंटरफ़ेस com.example.project.resource में है और com.example.project.images में छवियां हैं, तो आप @Source("../images/shim.gif") लिखेंगे। आप शायद पूर्ण पथ इस्तेमाल कर सकते हैं, लेकिन यकीन है कि आप उन्हें एक स्थिर चर में संग्रहीत करने और संसाधन के बीच साझा करते हैं, तो यह आसानी से अधिरोहित जा सकता है बनाते हैं;)

+0

कोई फर्क नहीं पड़ता कि मैं कैसे कोशिश करता हूं, मुझे लगता है: प्रकार संसाधन से सिंक्रोनस() विधि लापता प्रकार टेक्स्टरसोर्स – miroslavign

+0

@miroslavign को संदर्भित करता है: कृपया एक नया प्रश्न खोलें, टिप्पणियां अनुभाग नई समस्याओं का निवारण करने के लिए जगह नहीं है। –

3

इगोर के अंक के समान:

com.yoursite.resources: YourClientBundle.java 
com.yoursite.resources.css: YourCssResource.java 
com.yoursite.resources.images: image files here 

कुंजी यहाँ यह है कि यदि आप संसाधन (सीएसएस/छवि/पाठ) का उपभोग नहीं करते हैं, तो जीडब्ल्यूटी संकलक इसे अनदेखा कर देगा। यह युद्ध bloat को रोकता है क्योंकि आपका एप्लिकेशन धारक हो जाता है और आपके पास सैकड़ों छवियां हैं और ये सुनिश्चित नहीं हैं कि कौन से उपयोग किए जाते हैं और कौन नहीं हैं।

यदि आप सार्वजनिक/छवियों फ़ोल्डर में सबकुछ छोड़ने का विकल्प उपयोग करते हैं, तो सभी आइटम आपके एप्लिकेशन युद्ध में शामिल किए जाएंगे, भले ही उनका उपयोग किया जाए या नहीं।

संबंधित मुद्दे