Δυναμική συμφραστική βοήθεια

Επιπλέον της στατικής συσχέτισης οργάνων και ταυτοτήτων περιβαλλόντων, είναι δυνατή η δυναμική παροχή πληροφοριών για πιο δυναμική συμφραστική βοήθεια. Το σύστημα βοήθειας χρησιμοποιεί ταυτότητες περιβάλλοντος για τον εντοπισμό του αντικειμένου 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 για το φιλτράρισμα των θεμάτων στη συμφραστική βοήθεια.