Συνεισφορά σελίδας αναζήτησης

Όταν ο χρήστης επιλέγει έναν πόρο και ενεργοποιεί την εντολή αναζήτησης, η προσθετη λειτουργία αναζήτησης εμφανίζει ένα πλαίσιο διαλόγου που περιέχει σελίδες για διαφορετικά είδη αναζητήσεων στα περιεχόμενα.  Η συνεισφορά αυτών των σελίδων γίνεται με το σημείο επέκτασης org.eclipse.search.searchPages.

Ο κώδικας για τη συνεισφορά μιας σελίδας αναζήτησης είναι σαφής.  Το παράδειγμα που ακολουθεί είναι η συνεισφορά της πρόσθετης λειτουργίας JDT της σελίδας αναζήτησης Java:

<extension point="org.eclipse.search.searchPages">
   <page id="org.eclipse.jdt.ui.JavaSearchPage"
		icon="icons/full/obj16/jsearch_obj.png"
		label="%JavaSearchPage.label"
		sizeHint="460,160"
		extensions="java:90, jav:90"
		showScopeSection="true"
		canSearchEnclosingProjects="true"
		class="org.eclipse.jdt.internal.ui.search.JavaSearchPage">
	</page>
</extension>   

Η κλάση που υλοποιεί τη σελίδα αναζήτησης πρέπει να προσδιορισθεί.  Η κλάση αυτή πρέπει να υλοποιεί τη διεπαφή ISearchPage και συνήθως επεκτείνει την κλάσηDialogPage.  Επίσης, προσδιορίζονται η ετικέτα και το εικονίδιο που μπορούν να χρησιμοποιηθούν για την περιγραφή της αναζήτησης στο πλαίσιο διαλόγου αναζήτησης.  Επιπλέον παράμετροι ελέγχουν το μέγεθος και τη θέση της σελίδας μέσα στο πλαίσιο διαλόγου αναζήτησης.

Το γνώρισμα extensions προσδιορίζει τους πόρους στους οποίους μπορεί να λειτουργήσει η σελίδα αναζήτησης.  Έχει τη μορφοποίηση μιας λίστας επεκτάσεων αρχείων.  Κάθε επέκταση αρχείου πρέπει να συνοδεύεται από μια αριθμητική τιμή σπουδαιότητας, όπου το 0 συμβολίζει τη χαμηλότερη σπουδαιότητα, η οποία διαχωρίζεται από άνω και κατω τελεία.  Η τιμή σπουδαιότητας είναι μια σχετική τιμή που χρησιμοποιείται ετσί ώστε η υποδομή της αναζήτησης να βρίσκει την πιο κατάλληλη σελίδα αναζήτησης για έναν δεδομένο πόρο.

Εάν μια σελίδα αναζήτησης μπορεί να πραγματοποιήσει αναζήτηση σε όλους τους πιθανούς πόρους, τότε πρέπει να χρησιμοποιηθεί το "*".

Υλοποίηση της σελίδας αναζήτησης

Το πρωτόκολλο για τη διεπαφή ISearchPage είναι απλό.  Η σελίδα αναζήτησης πρέπει να υλοποιεί τη μέθοδο performAction(), η οποία καλείται όταν είναι πατημένο το κουμπί Αναζήτηση.  Βέβαια, η συγκεκριμένη υλοποίηση αναζήτησης εξαρτάται από τη συνάρτηση των πρόσθετων λειτουργιών, ωστόσο σε αυτή τη μέθοδο συνηθίζεται το άνοιγμα μιας προβολής αποτελεσμάτων χρησιμοποιώντας την κλάση NewSearchUI της μεθόδου activateSearchResultView().

Η πρόσθετη λειτουργία είναι υπεύθυνη για την εμφάνιση των αποτελεσμάτων της στην προβολή αποτελεσμάτων αναζήτησης.