Η σελίδα "Γενικά" του πλαισίου διαλόγου Προτιμήσεις επιτρέπει στους χρήστες να προσδιορίζουν εάν οι προβολές θα ανοίγουν τα αντικείμενά τους με μονό ή διπλό πάτημα.
Ποιος ο λόγος της αποποίησης ευθύνης για μη λειτουργία της προτίμησης αυτής σε όλες τις προβολές; Διότι οι προβολές τις οποίες συνεισφέρουν πρόσθετες λειτουργίες πρέπει να υποστηρίζουν ρητώς την υλοποίηση αυτής της προτίμησης.
Θυμηθείτε ότι μια προβολή μπορεί να υλοποιηθεί δημιουργώντας στοιχεία ελέγχου SWT και εγγράφοντας τυπικό κώδικα SWT ή χρησιμοποιώντας λειτουργίες προβολής JFace για το χειρισμό των λεπτομερειών χαμηλού επιπέδου. Η εφαρμογή της προτίμησης μονού πατήματος μπορεί να γίνει σε κάθε επίπεδο. Οι περισσότερες προβολές που ανοίγουν άλλα αντικείμενα τα παρουσιάζουν με δομημένο τρόπο, με τη μορφή λίστας. Θα επικεντρωθούμε σε αυτό το είδος προβολής προς το παρόν. Εάν η προβολή σας εμφανίζει αντικείμενα με διαφορετικό τρόπο, χρησιμοποιείτε πιθανόν τις έννοιες επιπέδου SWT για την υποστήριξη μονού πατήματος.
Εάν χρησιμοποιείτε μια λειτουργία προβολής JFace προσανατολισμένη σε λίστα για την παρουσίαση των αντικειμένων σας, η υποστήριξη μονού πατήματος είναι ξεκάθαρη. Αντί της χρήσης addDoubleClickListener για την ενεργοποίηση του ανοίγματος στοιχείων στην προβολή σας, χρησιμοποιήστε addOpenListener. Οι λειτουργίες ακρόασης ανοίγματος εφαρμόζουν την τρέχουσα προτίμηση του πάγκου εργασίας, ενεργοποιώντας το συμβάν ανοίγματος όταν πραγματοποιείται το καθορισμένο συμβάν ποντικιού.
Μπορεί να θέλετε να χρησιμοποιήσετε την addDoubleClickListener για ενέργειες μη ανοίγματος, όπως ανάπτυξη των στοιχείων σε μια διακλάδωση με διπλό πάτημα.
Η JFace παρέχει μια βοηθητική κλάση , OpenStrategy, για το χειρισμό της οργάνωσης της διαδικασίας μονού και διπλού πατήματος στο επίπεδο στοιχείων ελέγχου SWT. Η OpenStrategy ρυθμίζεται από τη σελίδα "Γενικά" του πλαισίου διαλόγου Προτιμήσεις, ώστε να εφαρμοστεί η τρέχουσα προτίμηση ανοίγματος του πάγκου εργασίας.Πράγματι, οι λειτουργίες προβολής JFace χρησιμοποιούν αυτή την κλάση για την υλοποίηση της λειτουργίας ακρόασης ανοίγματος.
Πρέπει να δημιουργήσετε μια OpenStrategy και να τη συσχετίσετε με το δικό σας στοιχείο ελέγχου SWT. Η OpenStrategy θα δεσμεύσει τα κατάλληλα συμβάντα και θα τα ερμηνεύσει με βάση τις προτιμήσεις χρήστη.Η δουλειά σας είναι να ανοίξετε μια λειτουργία ακρόασης στη στρατηγική που υλοποιεί τον κώδικα για άνοιγμα. Έτσι, δεν χρειάζεται να γνωρίζετε ποιο συμβάν οργάνου ενεργοποίησε το συμβάν ανοίγματος.
OpenStrategy openHandler = new OpenStrategy(control); openHandler.addOpenListener(new IOpenEventListener() { public void handleOpen(SelectionEvent e) { // code to handle the open event. ... } }
Ο χειρισμός των άλλων προτιμήσεων του πάγκου εργασίας για άνοιγμα (Επιλογή με τοποθέτηση του δείκτη του ποντικιού, άνοιγμα με χρήση πλήκτρων με βέλη) γίνεται από τη OpenStrategy. Αυτό σημαίνει ότι θα υπάρχει θετικό αποτέλεσμα εάν χρησιμοποιείτε λειτουργίες προβολής JFace ή την κλάση OpenStrategy για την υλοποίηση ανοικτής συμπεριφοράς.
Όταν χειρίζεστε ένα συμβάν ανοίγματος, πρέπει να χρησιμοποιείτε την OpenStrategy.activateOnOpen() για να καθορίζετε εάν μια ανοικτή λειτουργία πρέπει να ενεργοποιείται ως προεπιλογή. Η ενεργοποίηση μιας λειτουργίας επεξεργασίας μεταφέρει στο προσκήνιο τη λειτουργία επεξεργασίας αντί της προβολής, γεγονός που μπορεί να προκαλέσει ιδιαίτερη σύγχυση και ανεπιθύμητα αποτελέσματα στην κατάσταση λειτουργίας μονού πατήματος.