java - जीडब्ल्यूटी में क्लाइंटबंडल कैसे करें?




gwt clientbundle (2)

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

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

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

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

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

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();
}

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

धन्यवाद।


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

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





clientbundle