2010-09-16 7 views
6

के साथ मुख्य सीएसएस फ़ाइल को कैसे ढूंढें I UIBinder के साथ एक gwt वेबसाइट बनाने की कोशिश कर रहा हूं। यह अच्छा है, यह काम करता है, लेकिन मुझे ui: शैली के साथ समस्या है।GWT/UIBinder <ui:style>

मेरी परियोजना को मैवेनाइज्ड किया गया है (मैं gwt-maven-plugin archetype का उपयोग करता हूं)।

Application.html और Application.css फ़ाइलें src/main/resource/com/foo/bar/public में हैं।

जिस पृष्ठ पर मैं शैली की कोशिश कर रहा हूं वह पृष्ठ src/main/java/com/foo/bar/client/page1.java और Page1.ui.xml में है।

मैं एक सीएसएस फ़ाइल का उपयोग कर सकते हैं अगर यह के साथ एक ही पैकेज में है:

<ui:style src="Page1.css" /> 

लेकिन मैं Application.css (तो मैं प्रत्येक सीएसएस फ़ाइल में एक ही शैली होने से बचने के सकता है लक्षित करना चाहते हैं प्रत्येक पैकेज में)

मैंने विभिन्न सापेक्ष पथों की कोशिश की, और Application.css कभी नहीं मिला।

क्या वहां कोई है, वहां कोई समस्या है, और मेरी मदद करने की परवाह होगी?

धन्यवाद!

+0

मुझे भी रूचि है। मैंने केवल इसके साथ थोड़ा सा खेला, क्योंकि यह वास्तव में जरूरी नहीं था, लेकिन मुझे लगता है कि मुझे इसके लिए एक समाधान की आवश्यकता होगी। – Strelok

उत्तर

5

यदि आपके एप्लिकेशन सीएसएस को क्लाइंटबंडल में कहीं और संदर्भित किया गया है तो आप पूरी तरह से अपनी पथ समस्याओं का उपयोग कर सकते हैं और इससे बच सकते हैं। Using an external resource देखें।

0

आपको इस बारे में सोचना चाहिए कि यह वास्तव में आप क्या करना चाहते हैं। यूआईबिंडर क्लाइंटबंडल तंत्र के माध्यम से सीएसएस का उपयोग करता है, जो सीएसएस को अनुकूलित करता है, शैली के नामों को खराब करता है, और उसके बाद शैलियों को आपके संकलित जावास्क्रिप्ट कोड के हिस्से के रूप में एम्बेड करता है। यदि आप पारंपरिक तरीके से उसी सीएसएस फ़ाइल का उपयोग भी करते हैं (<link> टैग के साथ) तो आपको अपने उपयोगकर्ताओं को दो बार एक ही सीएसएस नियम डाउनलोड करने की आवश्यकता होती है। व्यवहार में अंतराल बहुत ध्यान देने योग्य नहीं हो सकता है लेकिन सिद्धांत रूप में यह थोड़ा खराब है।

किसी भी मामले में यह संभव नहीं है, क्योंकि क्लाइंटबंडल (और इसलिए यूआईबिंडर) केवल आपके स्रोत फ़ोल्डरों में सीएसएस फ़ाइलों पर काम करता है। चूंकि gk5885 कहता है, आप एक क्लाइंटबंडल बना सकते हैं और इसे अपने यूआईबिंडर टेम्पलेट्स में शामिल करके प्रोजेक्ट-वाइड का उपयोग कर सकते हैं। जैसा कि आप इस प्रणाली में कर सकते हैं उतना सीएसएस को स्थानांतरित करने पर विचार करना चाहिए।

1

पुराना सवाल, लेकिन; मैं बस इस तरह एक वैश्विक शैली संदर्भित, ui बिना: शैली के निर्देश:

छ: TabPanel ui: क्षेत्र = "tabPanel" चौड़ाई = "100%" ऊंचाई = "90%" styleName = "nameInMyMainCss"

यह setStyleName ("nameInMyMainCss") को कॉल करने के बराबर है; मेलिंग जावा क्लास में।

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