Προσαρμογή του πάγκου εργασίας

Το "σημείο καταχώρησης" για την εξασφάλιση μιας προσαρμοσμένης συμπεριφοράς του πάγκου εργασίας είναι ο προσδιορισμός μιας κλάσης WorkbenchAdvisor για τη ρύθμιση του πάγκου εργασίας. Η πρόσθετη λειτουργία εμπλουτισμένου πελάτη σας, επεκτείνει αυτή την αφηρημένη κλάση προκειμένου να παρέχει τις σχετικές με την εφαρμογή ρυθμίσεις για τον πάγκο εργασίας. Το παράδειγμα προγράμματος πλοήγησης πραγματοποιεί αυτή την ενέργεια κάνοντας χρήση της κλάσης BrowserAdvisor.

	...
	int code = PlatformUI.createAndRunWorkbench(display,
			new BrowserAdvisor());
	...

Ένας σύμβουλος πάγκου εργασίας είναι υπεύθυνος για την αντικατάσταση των μεθόδων ρύθμισης του πάγκου εργασίας με την επιθυμητή διάταξη και λειτουργίες, όπως τα στοιχεία γραμμής ενεργειών ή τη σελίδα εισαγωγής.

Κύκλος ζωής του πάγκου εργασίας

Οι μέθοδοι κύκλου ζωής που παρέχονται από το σύμβουλο του πάγκου εργασίας επιτρέπουν στην εφαρμογή σας να δεσμεύεται ανά πάσα στιγμή με τη δημιουργία του πάγκου εργασίας και να επηρεάζει τη συμπεριφορά. Ακολουθεί μια λίστα με τις μεθόδους κύκλου ζωής συμβούλου την οποία μπορείτε να αντικαταστήσετε και η οποία προέρχεται από το javadoc για την κλάση WorkbenchAdvisor.

Όπως μπορείτε να δείτε, μια εφαρμογή εμπλουτισμένου πελάτη διαθέτει εκτεταμένες δυνατότητες ελέγχου σε ότι αφορά τη ρύθμιση και την υλοποίηση του πάγκου εργασίας. Στο παράδειγμα του προγράμματος πλοήγησης, η βασική συνάρτηση του BrowserAdvisor είναι η ρύθμιση των γραμμών ενέργειας με τα κατάλληλα στοιχεία μενού για ένα πρόγραμμα πλοήγησης. Αυτό επιτυγχάνεται με τη βοήθεια της μεθόδου fillActionBars:

	public void fillActionBars(IWorkbenchWindow window, IActionBarConfigurer configurer, int flags) {
		...
		BrowserActionBuilder builder = new BrowserActionBuilder(window);
		getWorkbenchConfigurer().getWindowConfigurer(window).setData(BUILDER_KEY, builder); 
		builder.fillActionBars(configurer, flags);
	}

Σε αυτή την μέθοδο, ο πάγκος εργασίας ρυθμίζεται με τη βοήθεια ενός ειδικού εργαλείου δόμησης ενεργειών. Αυτό το εργαλείο δόμησης ενεργειών χρησιμοποιείται για τη συμπλήρωση των γραμμών ενέργειας του πάγκου εργασίας. Θα δούμε τις λεπτομέρειες οι οποίες αφορούν τον καθορισμό των ενεργειών στην ενότητα Καθορισμός ενεργειών. Για την ώρα, θα εστιάσουμε στον τρόπο ρύθμισης του πάγκου εργασίας.

Λάβετε υπόψη σας τη χρήση της παραπάνω μεθόδου getWorkbenchConfigurer(). Οι μέθοδοι IWorkbenchConfigurer και IWorkbenchWindowConfigurer χρησιμοποιούνται σε συνδυασμό με τη μέθοδο WorkbenchAdvisor για την προσαρμογή του παραθύρου. Οι κλάσεις αυτές σας επιτρέπουν να αντικαθιστάτε πολλές πλευρές της δημιουργίας του πάγκου εργασίας σε διαφορετικά επίπεδα. Για παράδειγμα, η μέθοδος IWorkbenchWindowConfigurer καθορίζει ένα πρωτόκολλο που λαμβάνει υπόψη του μια συγκεκριμένη ρύθμιση των στοιχείων ελέγχου στο παράθυρο του πάγκου εργασίας, όπως η γραμμή ενεργειών, η γραμμή κατάστασης, η γραμμή προοπτικής, η γραμμή cool, κλπ. Το πρωτόκολλο αυτό σας επιτρέπει να προσαρμόζετε και να συμπληρώνετε αυτά τα στοιχεία. Η μέθοδος IWorkbenchConfigurer λειτουργεί σε υψηλότερο επίπεδο επιτρέποντάς σας να αποθηκεύετε δεδομένα που αφορούν την εφαρμογή με τον πάγκο εργασίας. Η μέθοδος WorkbenchAdvisor παρέχει πρόσβαση σε αυτές τις λειτουργίες ρύθμισης των μεθόδων κύκλου ζωής που αναφέρθηκαν παραπάνω. Οι μέθοδοι χαμηλότερου επιπέδου μέσα στην κλάση WorkbenchAdvisor μπορούν να αντικατασταθούν προκειμένου να επιτευχθεί η πλήρης αντικατάσταση της προεπιλεγμένης συμπεριφοράς. Για παράδειγμα, ο σύμβουλος πάγκου εργασίας θα μπορούσε να αντικαταστήσει τη μέθοδο η οποία δημιουργεί τα στοιχεία ελέγχου SWT στο παράθυρο προκειμένου να παρέχει μια εντελώς διαφορετική υλοποίηση για το κύριο παράθυρο.

Με άλλα λόγια, υπάρχουν πολλοί τρόποι για την προσαρμογή του πάγκου εργασίας και αρκετά διαφορετικά επίπεδα στα οποία είναι δυνατό να χρησιμοποιηθούν αυτές οι τεχνικές. Το αρχείο javadoc για τις μεθόδους WorkbenchAdvisor, IWorkbenchConfigurer, και IWorkbenchWindowConfigurer περιλαμβάνει μια πλήρη περιγραφή του διαθέσιμου πρωτοκόλλου. Δείτε επίσης την πλήρη υλοποίηση του BrowserAdvisor για σχόλια σχετικά με εναλλακτικές υλοποιήσεις.