Το "σημείο καταχώρησης" για την εξασφάλιση μιας προσαρμοσμένης συμπεριφοράς του πάγκου εργασίας είναι ο προσδιορισμός μιας κλάσης WorkbenchAdvisor για τη ρύθμιση του πάγκου εργασίας. Η πρόσθετη λειτουργία εμπλουτισμένου πελάτη σας, επεκτείνει αυτή την αφηρημένη κλάση προκειμένου να παρέχει τις σχετικές με την εφαρμογή ρυθμίσεις για τον πάγκο εργασίας. Το παράδειγμα προγράμματος πλοήγησης πραγματοποιεί αυτή την ενέργεια κάνοντας χρήση της κλάσης BrowserAdvisor.
... int code = PlatformUI.createAndRunWorkbench(display, new BrowserAdvisor()); ...
Ένας σύμβουλος πάγκου εργασίας είναι υπεύθυνος για την αντικατάσταση των μεθόδων ρύθμισης του πάγκου εργασίας με την επιθυμητή διάταξη και λειτουργίες, όπως τα στοιχεία γραμμής ενεργειών ή τη σελίδα εισαγωγής.
Οι μέθοδοι κύκλου ζωής που παρέχονται από το σύμβουλο του πάγκου εργασίας επιτρέπουν στην εφαρμογή σας να δεσμεύεται ανά πάσα στιγμή με τη δημιουργία του πάγκου εργασίας και να επηρεάζει τη συμπεριφορά. Ακολουθεί μια λίστα με τις μεθόδους κύκλου ζωής συμβούλου την οποία μπορείτε να αντικαταστήσετε και η οποία προέρχεται από το javadoc για την κλάση WorkbenchAdvisor.
initialize
- καλείται στην αρχή, πριν από οποιοδήποτε παράθυρο και χρησιμοποιείται για την καταχώρηση στοιχείωνpreStartup
- καλείται δεύτερη, μετά την απόδοση αρχικών τιμών αλλά πριν από το άνοιγμα του πρώτου παραθύρου και χρησιμοποιείται για την προσωρινή απενεργοποίηση στοιχείων κατά την εκκίνηση ή την επαναφοράpostStartup
- καλείται τρίτη, μετά από το άνοιγμα του πρώτου παραθύρου και χρησιμοποιείται για την εκ νέου ενεργοποίηση στοιχείων που απενεργοποιήθηκαν προσωρινά σε προηγούμενα βήματαpostRestore
- καλείται μετά την αναδημιουργία του πάγκου εργασίας και των παραθύρων του από μια προηγουμένως αποθηκευμένη κατάσταση και χρησιμοποιείται για τη ρύθμιση του πάγκου εργασίας στον οποίο έγινε επαναφοράpreWindowOpen
- καλείται κατά το άνοιγμα του κάθε παραθύρου και χρησιμοποιείται για τη ρύθμιση των παραμέτρων παραθύρου εκτός από τις ρυθμίσεις των γραμμών ενεργειών fillActionBars
- καλείται μετά το preWindowOpen
προκειμένου να ρυθμιστούν οι γραμμές ενεργειών του παραθύρουpostWindowRestore
- καλείται μετά την αναδημιουργία του παραθύρου από μια προηγουμένως αποθηκευμένη κατάσταση και χρησιμοποιείται για το παράθυρο στο οποίο έγινε επαναφορά.postWindowCreate
- καλείται μετά τη δημιουργία του παραθύρου είτε από μια αρχική κατάσταση είτε από μια κατάσταση επαναφοράς και χρησιμοποιείται για τη ρύθμιση του παραθύρουopenIntro
- καλείται αμέσως πριν το άνοιγμα του παραθύρου προκειμένου να δημιουργήσει το στοιχείο εισαγωγής, εάν υπάρχει.postWindowOpen
- καλείται μετά το άνοιγμα του παραθύρου και χρησιμοποιείται για τη δέσμευση των λειτουργιών ακρόασης παραθύρου κλπ.preWindowShellClose
- καλείται από το χρήστη μετά το κλείσιμο του κελύφους ενός παραθύρου και χρησιμοποιείται για την παρακολούθηση του κλεισίματος παραθύρουeventLoopException
- καλείται για το χειρισμό της περίπτωσης όπου η λειτουργία του βρόγχου συμβάντων έχει τερματιστεί και χρησιμοποιείται για να πληροφορήσει το χρήστη ότι υπάρχει πρόβλημαeventLoopIdle
- καλείται όταν υπάρχουν περισσότερα συμβάντα προς επεξεργασία και χρησιμοποιείται για την εκτέλεση άλλων εργασιών ή για αναμονή μέχρι την καταχώρηση νέων συμβάντων στην ουράpreShutdown
- καλείται αμέσως μετά τον τερματισμό ενός βρόγχου συμβάντος αλλά πριν από το κλείσιμο οποιουδήποτε παραθύρου και επιτρέπει στην εφαρμογή να μπλοκάρει τον τερματισμό λειτουργίας.postShutdown
- καλείται τελευταία αμέσως μετά από τον τερματισμό του βρόγχου συμβάντος και το κλείσιμο όλων των παραθύρων και χρησιμοποιείται για την κατάργηση της καταχώρησης στοιχείων τα οποία καταχωρήθηκαν κατά την απόδοση των αρχικών τιμώνΌπως μπορείτε να δείτε, μια εφαρμογή εμπλουτισμένου πελάτη διαθέτει εκτεταμένες δυνατότητες ελέγχου σε ότι αφορά τη ρύθμιση και την υλοποίηση του πάγκου εργασίας. Στο παράδειγμα του προγράμματος πλοήγησης, η βασική συνάρτηση του 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 για σχόλια σχετικά με εναλλακτικές υλοποιήσεις.