Επιπλέον της στατικής συσχέτισης οργάνων και ταυτοτήτων περιβαλλόντων, είναι δυνατή η δυναμική παροχή πληροφοριών για πιο δυναμική συμφραστική βοήθεια. Το σύστημα βοήθειας χρησιμοποιεί ταυτότητες περιβάλλοντος για τον εντοπισμό του αντικειμένου org.eclipse.help.IContext που ταιριάζει. Η νέα προβολή "Βοήθεια" παρακολουθεί την ενεργοποίηση τμημάτων του πάγκου εργασίας (προβολές και λειτουργίες επεξεργασίας) και ελέγχει εάν προσαρμόζονται στη διεπαφή org.eclipse.help.IContextProvider. Εάν προσαρμόζονται, η προβολή θα χρησιμοποιήσει τον παροχέα περιβάλλοντος για τον εντοπισμό του αντικειμένου IContext
και τη λήψη των απαιτούμενων πληροφοριών από αυτό. Αυτό το αντικείμενο μπορεί να αποθηκευτεί στη λανθάνουσα μνήμη ή να δημιουργηθεί κατά τη διάρκεια της λειτουργίας.
Τα τμήματα του πάγκου εργασίας που θέλουν να δημιουργήσουν το αντικείμενο περιβάλλοντος δυναμικά πρέπει να προσαρμοστούν στο αντικείμενο IContextProvider.class
ως κλειδί:
public Object getAdapter(Class key) { if (key.equals(IContextProvider.class)) { return new MyContextProvider(); } return super.getAdapter(key); }
Η διεπαφή παροχέα περιβάλλοντος απαιτεί υλοποίηση τριών μεθόδων:
public class MyContextProvider implements IContextProvider { int getContextChangeMask() { return NONE; } IContext getContext(Object target) { return myContext; } String getSearchExpression(Object target) { return null; } }
Εάν η μάσκα αλλαγής περιβάλλοντος επιστρέψει NONE
, το αντικείμενο περιβάλλοντος θα πρέπει να παρασχεθεί όταν ενεργοποιηθεί το τμήμα του πάγκου εργασίας. Εάν επιστρέψει SELECTION
, θα χρειαστεί να παράσχετε αντικείμενο περιβάλλοντος το οποίο θα εξαρτάται από την τρέχουσα επιλογή στο τμήμα. Κάθε φορά που ο παροχέας επιλογής τμήματος εκκινεί ένα συμβάν αλλαγής επιλογής, θα ζητείται από τον παροχέα περιβάλλοντος να παράσχει αντικείμενο περιβάλλοντος.
Προαιρετικά, είναι δυνατή η παροχή έκφρασης αναζήτησης για τη δυναμική βοήθεια. Διαφορετικά, θα χρησιμοποιηθεί ένας συνδυασμός του ονόματος τμήματος και του ονόματος προοπτικής με καλά αποτελέσματα και στις 2 περιπτώσεις.
Σημείωση: Παράλληλα με τη χρήση παροχέων περιβάλλοντος (ή εναλλακτικά), μπορείτε να χρησιμοποιήσετε σημειώσεις XML για το φιλτράρισμα των θεμάτων στη συμφραστική βοήθεια.