2011-09-12 11 views
10

एक प्रोग्रामिंग परिदृश्य में, मुझे यह जांचने की आवश्यकता है कि मेरा जीडब्ल्यूटी टेक्स्टबॉक्स केंद्रित था या नहीं। मैं एक बूलियन और फोकस & ब्लरहैंडलर की एक जोड़ी को मैन्युअल रूप से फोकस स्टेटस रखने के लिए जोड़ता हूं जो मुझे आश्चर्यचकित करता है कि ऐसी कोई विधि क्यों नहीं है जो एक फोकस करने योग्य घटक gwt में केंद्रित है?जीडब्ल्यूटी में कोई फोकस नहीं किया गया है?

+1

यहां कोई भी इसका उत्तर नहीं दे सकता है। जब तक कि Google द्वारा डिजाइन किए गए लोगों में से कोई भी ऐसा नहीं होता है, जो काफी संभावना नहीं है। –

+2

वे आपके विचार से अधिक हैं –

+0

फ़ोकसहैंडलर का उपयोग करने में क्या गलत है? – helpermethod

उत्तर

11

क्योंकि कुछ साल पहले तक ऐसा करने का कोई क्रॉस-ब्राउज़र तरीका नहीं था (फ़ायरफ़ॉक्स 3, सफारी 4, गेम में अंतिम खिलाड़ियों को इंगित करने के लिए document.activeElement) जोड़ा गया था।

जीडब्ल्यूटी अभी भी आधिकारिक तौर पर [1] सफारी 3 का समर्थन करता है (मुझे विश्वास है कि सफारी 2 समर्थन को हटा दिया गया है) और यहां तक ​​कि फ़ायरफ़ॉक्स 2 (कोई देवमोड प्लगइन भी नहीं है, लेकिन इसका मतलब यह नहीं है कि ब्राउज़र समर्थित नहीं है: ओपेरा समर्थित है लेकिन इसमें कोई भी देवमोड नहीं है), इसलिए ऐसी सुविधा प्रदान करना संभव नहीं है जो सभी समर्थित ब्राउज़रों में काम करेगा।

अंतिम, लेकिन कम से कम नहीं, मुझे लगता है कि किसी ने कभी भी जारीकर्ता ट्रैकर में वृद्धि के लिए अनुरोध दायर नहीं किया है (मुझे कम से कम कोई नहीं मिला); और जैसा कि आपने कहा था, आप फ़ोकसहैंडलर/ब्लरहैंडलर (जो क्रॉस-ब्राउज़र काम करता है) का उपयोग करके आज ही इसे कर सकते हैं।

[1] http://code.google.com/webtoolkit/doc/latest/FAQ_GettingStarted.html#What_browsers_does_GWT_support? मेरा मानना ​​है कि पृष्ठ थोड़ा पुराना है, क्योंकि यह अभी भी फ़ायरफ़ॉक्स 1.0 सूचीबद्ध करता है, जिसका समर्थन (user.agent = gecko, बनाम gecko1_8) को GWT 2.1.0 में हटा दिया गया है, और IE9 सूचीबद्ध नहीं करता है, जिसका समर्थन है जीडब्ल्यूटी 2.3.0 में जोड़ा गया है, और आखिरी लेकिन कम से कम नहीं, मेरा मानना ​​है कि केवल ओपेरा का नवीनतम संस्करण समर्थित है, जबकि सूची ओपेरा 9 के बारे में बात करती है।

+0

किस ब्राउज़र का समर्थन करता है, इसके व्यापक दृश्य के लिए, उदाहरण के लिए देखें एमडीएन: https://developer.mozilla.org/en-US/docs/Web/API/document.activeElement आज, ऐसा लगता है कि सभी प्रमुख ब्राउज़र इसका समर्थन करते हैं (आईई 4+, क्रोम 2+, आदि), इसलिए इसका उपयोग करने के लिए यह काफी सुरक्षित है। – PhiLho

1

यह पता लगाने के लिए कि कौन सा विजेट फोकस करता है, मुझे नहीं पता कि क्या आपके पास पहले से ही समाधान है। GWT के लिए एक नौसिखिया के रूप में, मेरा प्रस्ताव है साझा करने के लिए मेरे समाधान:

  1. , वस्तु में निजी क्षेत्र घोषित की तरह विजेट के लिए 'focusedWidget' step 1

  2. बनाएं फोकस हैंडलर, यहाँ वर्ग पाठ बॉक्स है। ऑनफोकस ब्लॉक में, बस विजेट को 'केंद्रित Widget' पर असाइन करें। आप इस तरह की घटना को प्रत्येक विजेट में जोड़ सकते हैं जिसे ध्यान केंद्रित किया जा सकता है। ! [चरण 2] [2]

  3. यह सब कुछ है। फोकस इवेंट से जुड़े प्रत्येक विजेट को स्वयं को ध्यान केंद्रित करने पर हर बार 'केंद्रित विजिट' पर सेट कर दिया जाएगा। इसके बाद हम यह निर्धारित करने के लिए 'केंद्रित विजिट' का उपयोग कर सकते हैं कि कौन सा मौजूदा विजेट केंद्रित है। ! [चरण 3] [3]

मैं इसे JUnit में परीक्षण करता हूं, यह काम करता है! see image of snippet here आशा है कि मदद करें।

+0

यह सहायक है, लेकिन प्रत्येक आइटम को धुंध हैंडलर भी जोड़ना होगा - ताकि वर्तमान में किसी भी आइटम की स्थिति का पता लगाया जा सके और केंद्रित Widget मान को शून्य पर सेट किया जा सके। – Joel

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