हाय,

मान लीजिए कि एक org.eclipse.swt.widgets.Text नियंत्रण मॉडल व्यक्ति से डेटाबाइंडिंग के माध्यम से जुड़ा है। पाठ व्यक्ति के उपनाम का प्रतिनिधित्व करता है।

अब, हर बार मॉडल बदला जाता है, मान अपडेट किया जाता है, यह ठीक है। अब मुझे निम्नलिखित चाहिए:

यदि मॉडल में उपनाम के लिए कोई मूल्य नहीं है, तो मैं चाहता हूं कि टेक्स्ट-कंट्रोल में एक संकेत लेबल हो, एसए। "सरनेम डालें" जिसे कायम नहीं रखा जाना चाहिए!

मैं टेक्स्टकंट्रोल में एक संशोधित लिस्टनर जोड़कर इस व्यवहार को बना सकता हूं जो टेक्स्ट सेट करता है यदि सेटटेक्स्ट की लंबाई 0 है, हालांकि, मैं डेटाबेस को "उपनाम सम्मिलित करें" जारी रखने के लिए रोक नहीं सकता!

मैंने टेक्स्ट को विस्तारित करने का प्रयास किया (गेटटेक्स्ट को ओवरराइड करने के लिए), जिसकी अनुमति नहीं है, और टेक्स्ट को "लेबल टेक्स्ट" में लपेटने के लिए मुझे डेटा बाइंडिंग को संशोधित करने की आवश्यकता है!

किसी को भी इसके समाधान के बारे में पता है?

धन्यवाद

1
col.panic 26 सितंबर 2011, 18:31
ऐसा लगता है कि मुझे अभी जवाब मिला है .... org.eclipse.swt.widgets.Text.setMessage() काम करने लगता है :)
 – 
col.panic
27 सितंबर 2011, 00:03

2 जवाब

सबसे बढ़िया उत्तर

Org.eclipse.swt.widgets.Text.setMessage () एक विधि है जो अनुरोधित कार्य को ठीक से कर रही है।

4
col.panic 16 पद 2012, 00:43

मुझे लगता है कि मानक एसडब्ल्यूटी विजेट्स के साथ इस तरह के व्यवहार को अनुकरण करना काफी कठिन है। तो, शायद, आपको सत्यापन सिमुलेशन के साथ एक कस्टम विजेट बनाने की आवश्यकता है। आपके सत्यापनकर्ता को आपको एक सत्यापन स्थिति लौटानी चाहिए, जिसका उपयोग बाद में किया जा सकता है।

0
Alex K. 26 सितंबर 2011, 18:56