Προσαρμοσμένα όργανα

Μπορεί να επιθυμείτε να επεκτείνετε το 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