2011-02-01 13 views
5

के लिए "त्वरित खोज" मेरे पास एक सारणी है जो डेटाबेस से आउटपुट प्रदर्शित करती है, यह अक्सर 10,000 पंक्तियों तक या उससे अधिक हो सकती है। मैं एक 'त्वरित खोज' फ़ंक्शन को लागू करने के लिए देख रहा हूं जो उपयोगकर्ता को उस मूल्य के साथ आसानी से स्क्रॉल करने की अनुमति देगा जिसके लिए वे खोज करते हैं।एक एसडब्ल्यूटी तालिका

यह विचार क्रोम या फ़ायरफ़ॉक्स के त्वरित खोज के समान ही है। तो:

  1. उपयोगकर्ता हिट 'CTRL + F'
  2. एक बॉक्स पॉप अप होता:
  3. quick find example
  4. उपयोगकर्ता तो जल्दी से धक्का/या \ प्रत्येक मिलान मूल्य के लिए/तालिका के माध्यम से स्किम कर सकते हैं

मेरा सवाल है, क्या ऐसी तालिका पहले से मौजूद है? मैंने NatTable और XViewer पर देखा है, लेकिन वे दोनों अपेक्षाकृत मामूली परिवर्तन के लिए बड़े जोड़ों की तरह लगते हैं।

एक और पुस्तकालय मुझे लगता है कि billl फिटिंग के करीब है देखा है Lucene TableSearcher दुर्भाग्य से इस बजाय छानने पर प्रकाश डाला के लिए बनाया गया है। हालांकि यह जांच के लायक एक एवेन्यू हो सकता है।

उत्तर

1

मैंने जो समाधान चुना वह उतना आसान नहीं था जितना कि मैंने आशा की थी लेकिन एक संतोषजनक प्रदर्शन है।

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

'खोज' ModifyListener के साथ एक सरल एसडब्ल्यूटी टेक्स्टबॉक्स है जो सूची में पुनरावृत्त करता है, प्रत्येक प्रविष्टि पर 'शामिल' करता है। एक मैच पर पंक्ति और कॉलम की गणना इंडेक्स संख्या (0 = 0,0, 1 = 0,1 ..) से की जाती है।

इसके लिए एक आसान 'ड्रॉप इन' समाधान होना अच्छा लगेगा लेकिन प्रस्ताव पर सभी टेबलों में बहुत सारी सुविधाएं थीं।

2

यह बिल्कुल समान नहीं है, लेकिन जेएफएएस को विचारों को फ़िल्टर करने के लिए समर्थन है। आप टेक्स्ट बॉक्स में टाइप करते हैं और सामग्री को फ़िल्टर करते हैं जो फिल्टर से मेल खाते हैं। यह मूल रूप से उपयोगकर्ता को खोज/खोज कार्यक्षमता प्रस्तुत करने का एक और तरीका है।

आप इसे ग्रहण प्राथमिकताओं (संवाद में नेविगेशन पेड़ के बारे में फ़िल्टर टेक्स्ट फ़ील्ड) में कार्रवाई में देख सकते हैं। Org.eclipse.ui.dialogs.FilteredTree क्लास देखें। मुझे विश्वास नहीं है कि एक फ़िल्टर किया गया या समकक्ष है, लेकिन अंतर्निहित सुविधाएं बहुत सामान्य हैं, इसलिए इसे एक साथ रखने के लिए ज्यादा काम नहीं करना चाहिए। FilteredTree स्रोत पर एक नज़र डालें और वहां से जाएं।

+0

धन्यवाद, वहाँ पहले से ही इस तालिका (डेटाबेस क्वेरी का उपयोग करती छानने करने के लिए) के लिए एक फिल्टर है। विचार यह है कि खोज फ़िल्टर किए गए डेटा के माध्यम से उपयोगकर्ताओं को स्किम करने की अनुमति देकर फिल्टर की तारीफ करेगी। –

0

उपयोग FilteredItemsSelectionDialog संवाद बॉक्स

+0

इसे कहां खोजें? क्या यह एसडब्ल्यूटी या जेएफएएस का हिस्सा है? – Mot

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