Το πακέτο org.eclipse.jface.dialogs παρέχει μια κλάση βοηθήματος, DialogSettings, για την αποθήκευση και ανάκτηση τιμών συσχετισμένων με κλειδιά. Μπορείτε να χρησιμοποιήσετε αυτή την κλάση για να αποθηκεύσετε και να ανακτήσετε στοιχειώδη είδη δεδομένων και τιμές σειρών χαρακτήρων που συσχετίζετε με ονόματα κλειδιών. Οι ρυθμίσεις φορτώνονται και αποθηκεύονται με τη χρήση ενός αρχείου XML.
Η AbstractUIPlugin παρέχει υποστήριξη για ρυθμίσεις πλαισίων διαλόγου για όλες τις πρόσθετες λειτουργίες που είναι αποθηκευμένες σε ένα αρχείο XML στον κατάλογο της πρόσθετης λειτουργίας σας. Εάν δεν βρεθεί ένα αρχείο ρυθμίσεων πλαισίου διαλόγου στον κατάλογο της πρόσθετης λειτουργίας σας, θα δημιουργηθεί μια κενή DialogSettings. Όταν γίνει τερματισμός της πρόσθετης λειτουργίας σας, οποιεσδήποτε ρυθμίσεις που προστέθηκαν σε αυτή θα αποθηκευτούν σε ένα αρχείο XML και θα ανακτηθούν την επόμενη φορά που θα γίνει εκκίνηση της πρόσθετης λειτουργίας.
Μπορείτε να έχετε πρόσβαση στις ρυθμίσεις του πλαισίου διαλόγου σας σε οποιοδήποτε σημείο του κώδικα της πρόσθετης λειτουργίας σας. Το ακόλουθο τμήμα κώδικα δείχνει τον τρόπο λήψης των ρυθμίσεων πλαισίου διαλόγου για το εργαλείο διαχείρισης αρχείων readme.
IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings();
Οι τιμές αποθηκεύονται και ανακτώνται με τη χρήση μεθόδων λήψης και αποθήκευσης. Οι μέθοδοι λήψης ονομάζονται από το όνομα του είδους του στοιχειώδους στο οποίο γίνεται πρόσβαση. Μπορείτε να αποθηκεύσετε και να ανακτήσετε τιμές λογικές, μεγάλου μήκους, διπλής ακρίβειας, αριθμού κινητής υποδιαστολής, ακέραιων αριθμών, πίνακα και σειράς χαρακτήρων. Το ακόλουθο τμήμα κώδικα δείχνει τον τρόπο που θα μπορούσαμε να χρησιμοποιήσουμε τις ρυθμίσεις των πλαισίων διαλόγου για την απόδοση αρχικών τιμών στις τιμές ελέγχου σε ένα πλαίσιο διαλόγου.
protected Control createDialogArea(Composite parent) { IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings(); checkbox = new Button(parent,SWT.CHECK); checkbox.setText("Generate sample section titles"); // initialize the checkbox according to the dialog settings checkbox.setSelection(settings.getBoolean("GenSections")); }
Η τιμή της ρύθμισης μπορεί να αποθηκευτεί αργότερα, όταν πατηθεί το κουμπί "ΟΚ".
protected void okPressed() { IDialogSettings settings = ReadmePlugin.getDefault().getDialogSettings(); // store the value of the generate sections checkbox settings.put("GenSections", checkbox.getSelection()); super.okPressed(); }
Γενικά, ο ορισμός και η ερμηνεία των ρυθμίσεων του πλαισίου διαλόγου αποτελούν ευθύνη της πρόσθετης λειτουργίας σας. ΠαρΆ όλα αυτά, υπάρχουν ορισμένα, συγκεκριμένα κλειδιά για τις ρυθμίσεις του πλαισίου διαλόγου, τα οποία ορίζονται εντός του πλαισίου του παραθύρου διαλόγου JFace. Χρησιμοποιούνται για να θυμούνται το μέγεθος και τη θέση που είχε την τελευταία φορά ένα πλαίσιο διαλόγου, έτσι ώστε αυτό να μπορεί να ανοίξει στην ίδια θέση και με το ίδιο μέγεθος την επόμενη φορά που θα κληθεί. Το πλαίσιο θα υποβάλει το ερώτημα και θα αποθηκεύσει το μέγεθος και τη θέση του πλαισίου διαλόγου, όμως εσείς θα πρέπει να υλοποιήσετε μια μέθοδο που θα παρέχει την περίπτωση χρήσης IDialogSettings για την αποθήκευση των πληροφοριών των ορίων του πλαισίου διαλόγου. Το ακόλουθο τμήμα κώδικα δείχνει πώς το SectionsDialog μπορεί να εκμεταλλευτεί αυτή τη λειτουργία.
protected IDialogSettings getDialogBoundsSettings() { return ReadmePlugin.getDefault().getDialogSettings(); }
Υλοποιώντας αυτή τη μέθοδο, η θέση και το μέγεθος του SectionsDialog θα αποθηκευτούν σε προκαθορισμένα κλειδιά εντός των ρυθμίσεων του πλαισίου διαλόγου της πρόσθετης λειτουργίας, προκαλώντας έτσι το άνοιγμα του πλαισίου διαλόγου στην προηγούμενη θέση του.