Μπορεί να επιθυμείτε να επεκτείνετε το SWT υλοποιώντας το δικό σας προσαρμοσμένο όργανο. Το ίδιο το SWT παρέχει ένα πακέτο org.eclipse.swt.custom, το οποίο περιέχει προσαρμοσμένα στοιχεία ελέγχου τα οποία δεν βρίσκονται στο κύριο σύνολο των στοιχείων ελέγχου SWT, αλλά χρειάζονται για την υλοποίηση του πάγκου εργασίας πλατφόρμας.
Στοιχείο ελέγχου |
Σκοπός |
---|---|
CBanner | Το CBanner χρησιμοποιείται στον πάγκο εργασίας για τη ρύθμιση διάταξης της περιοχής γραμμής εργαλείων και της γραμμής εργαλείων εναλλαγής προοπτικών. |
CCombo | Μοιάζει με το Combo, με τη διαφορά ότι έχει τη δυνατότητα κάθετης αλλαγής μεγέθους που του επιτρέπει να προσαρμόζεται σε κελιά πινάκων. |
CLabel | Μοιάζει με το Label, με τη διαφορά ότι υποστηρίζει την σύμπτυξη κειμένου με αποσιωπητικά. Υποστηρίζει επίσης τη δυνατότητα διαβάθμισης χρώματος για το χρώμα του φόντου όπως εμφανίζεται στην ενεργή προβολή του πάγκου εργασίας. Δεν υποστηρίζει την αναδίπλωση. |
CTabFolder | Μοιάζει με το TabFolder, με τη διαφορά ότι υποστηρίζει πρόσθετες ρυθμίσεις της οπτικής εμφάνισης των καρτελών (πάνω ή κάτω) και των περιγραμμάτων. |
CTabItem | Επιλέξιμο αντικείμενο περιβάλλοντος χρήστη που αντιστοιχεί σε καρτέλα για μια σελίδα σε CTabFolder. |
SashForm | Σύνθετο στοιχείο ελέγχου το οποίο παραθέτει τα θυγατρικά του στοιχεία σε γραμμή ή στήλη και χρησιμοποιεί ένα πλαίσιο για να τα διαχωρίσει, έτσι ώστε ο χρήστης να μπορεί να αλλάζει το μέγεθός τους. |
ScrolledComposite | Σύνθετο στοιχείο ελέγχου, το οποίο πραγματοποιεί κύλιση στα περιεχομένά του και προαιρετικά τα επεκτείνει για να συμπληρωθεί ο διαθέσιμος χώρος. |
StyledText | Τροποποιήσιμο στοιχείο ελέγχου που επιτρέπει στο χρήστη να πληκτρολογήσει ένα κείμενο. Περιοχές κειμένου μέσα στο στοιχείο ελέγχου μπορούν να έχουν ξεχωριστά χρώματα και στυλ γραμματοσειράς. |
ViewForm | Το Viewform χρησιμοποιείται στον πάγκο εργασίας για την τοποθέτηση και τη ρύθμιση του μεγέθους της ετικέτας/γραμμής εργαλείων/τοπικής γραμμής μενού μιας προβολής. |
Αφού βεβαιωθείτε ότι χρειάζεστε ένα προσαρμοσμένο όργανο και αποφασίσετε ποιες πλατφόρμες πρέπει να υποστηριχθούν, μπορείτε να διαλέξετε ανάμεσα σε διάφορες τεχνικές υλοποίησης για το όργανό σας. Μπορεί να γίνει ανάμιξη και αντιστοίχιση αυτών των τεχνικών ανάλογα με το τι είναι διαθέσιμο στην υποκείμενη πλατφόρμα λειτουργικού συστήματος.
Αν η εφαρμογή απαιτεί ένα ενσωματωμένο όργανο που δεν παρέχεται από το SWT, θα χρειαστεί να το υλοποιήσετε ενσωματωμένα. Μπορεί να πρόκειται για όργανο πλατφόρμας, τριτομερές όργανο, ή οποιοδήποτε άλλο όργανο σε μια κοινόχρηστη βιβλιοθήκη πλατφόρμας. Ολοκληρωμένο παράδειγμα μιας υλοποίησης ενσωματωμένου και προσαρμοσμένου οργάνου υπάρχει στην ενότητα Δημιουργία προσαρμοσμένων οργάνων με χρήση του SWT.
Είναι δυνατός ο συνδυασμός των οργάνων για τη διαμόρφωση πιο σύνθετων οργάνων. Για παράδειγμα, το Combo μπορεί να υλοποιηθεί χρησιμοποιώντας ένα όργανο καταγραφής κειμένου σε συνδυασμό με ένα κουμπί και μια αναπτυσσόμενη λίστα. Για την υλοποίηση ενός συνδυασμένου οργάνου απαιτείται η δημιουργία μιας υποκλάσης Composite και η διαχείριση των θυγατρικών στοιχείων γίνεται εσωτερικά.
Ένα απλό παράδειγμα υπάρχει στο CCombo.
Σε ορισμένες περιπτώσεις δεν υπάρχουν όργανα ή ένας ενσωματωμένος κωδικός που βοηθούν στην υλοποίηση του νέου οργάνου. Αυτό σημαίνει ότι πρέπει να σχεδιάσετε οι ίδιοι το όργανο στη ρουτίνα χειρισμού για το "Συμβάν ζωγραφικής". Παρόλο που αυτή η τεχνική μπορεί να είναι αρκετά πολύπλοκη, έχει το πλεονέκτημα ότι παράγει μια πλήρως φορητή υλοποίηση.
Τα προσαρμοσμένα και σχεδιασμένα στοιχεία ελέγχου υλοποιούνται δημιοιυργώντας μια υποκλάση της Canvas ή της Composite. Δημιουργήστε μια υποκλάση της Canvas αν το όργανο δεν περιέχει θυγατρικά στοιχεία ελέγχου.
Η εσωτερική υλοποίηση ενός προσαρμοσμένου και σχεδιασμένου οργάνου περιλαμβάνει συνήθως αυτές τις κύριες εργασίες:
Πολλά από τα όργανα που υλοποιούνται στο πακέτο org.eclipse.swt.custom χρησιμοποιούν αυτή την προσέγγιση. Ένα απλό παράδειγμα υπάρχει στο στοιχείο ελέγχου CLabel.
Για περισσότερες πληροφορίες σχετικά με τα προσαρμοσμένα όργανα, ανατρέξτε στην ενότητα Δημιουργία προσαρμοσμένων οργάνων με χρήση του SWT