Προσαρμοσμένες διατάξεις
Ενδέχεται περιστασιακά να χρειαστεί να εγγράψετε τη δική σας κλάση προσαρμοσμένης Διάταξης. Αυτό απαιτείται κυρίως όταν έχετε μια σύνθετη διάταξη που χρησιμοποιείται σε πολλά διαφορετικά σημεία στην εφαρμογή σας. Να σημειωθεί ότι κάποιες φορές είναι πιο απλό και πιο εύκολο να υπολογίσετε μεγέθη και να τοποθετήσετε θυγατρικά στοιχεία σε μια λειτουργία ακρόασης αλλαγής μεγέθους, εκτός αν εγγράφετε μια πολύ γενική διάταξη που θα χρησιμοποιηθεί από διάφορα Σύνθετα, όργανα.
Οι διατάξεις είναι υπεύθυνες για την υλοποίηση δύο μεθόδων:
- Η μέθοδος computeSize(...) υπολογίζει το πλάτος και το ύψος ενός ορθογωνίου που περιέχει όλα τα θυγατρικά στοιχεία του σύνθετου στοιχείου από τη στιγμή που έχουν ρυθμιστεί τα μεγέθη τους και έχουν τοποθετηθεί σύμφωνα με τον αλγόριθμο της διάταξης. Οι παράμετροι υπόδειξης επιτρέπουν τον περιορισμό του πλάτους και/ή του ύψους. Για παράδειγμα, μια διάταξη μπορεί να επιλέξει να αναπτυχθεί προς μία κατεύθυνση αν εμποδίζεται προς μία άλλη.
- Η μέθοδος layout(...) τοποθετεί και ρυθμίζει το μέγεθος των θυγατρικών στοιχείων του σύνθετου στοιχείου.
Μια διάταξη μπορεί να επιλέξει να αποθηκεύσει στη λανθάνουσα μνήμη πληροφορίες που σχετίζονται με τη διάταξη, όπως την προτιμώμενη εμβέλεια κάθε θυγατρικού στοιχείου. Η παράμετρος flushCache δίνει εντολή στην Διάταξη να διαγράψει δεδομένα της λανθάνουσας μνήμης, μια ενέργεια που είναι απαραίτητη όταν έχουν αλλάξει άλλοι παράγοντες εκτός από το μέγεθος του σύνθετου στοιχείου, όπως η δημιουργία ή αφαίρεση θυγατρικών στοιχείων ή μια αλλαγή στη γραμματοσειρά του οργάνου.
ΜΙα τρίτη μέθοδος, flushCache(...), μπορεί να εφαρμοστεί προαιρετικά για την εκκαθάριση δεδομένων της λανθάνουσας μνήμης που έχουν συσχετιστεί με ένα συγκεκριμένο στοιχείο ελέγχου.
Συχνά, η μέθοδος ενός οργάνου μπορεί να είναι χρονοβόρα, γι' αυτό οι διατάξεις μπορούν να αποθηκεύσουν στη λανθάνουσα μνήμη αποτελέσματα για τη βελτίωση της απόδοσης.
Πληρέστερη ανάλυση των προσαρμοσμένων διατάξεων βρίσκεται στην ενότητα Κατανόηση διατάξεων σε SWT.