Η λειτουργία επεξεργασίας είναι ένα τμήμα του πάγκου εργασίας που επιτρέπει στο χρήστη την τροποποίηση ενός αντικειμένου (συχνά ενός αρχείου). Οι λειτουργίες επεξεργασίας λειτουργούν με τρόπο παρόμοιο με αυτό των εργαλείων τροποποίησης του συστήματος αρχείων, εκτός του ότι είναι πλήρως ενοποιημένες με το περιβάλλον χρήστη του πάγκου εργασίας της πλατφόρμας. Μια λειτουργία επεξεργασίας είναι πάντα συσχετισμένη με ένα αντικείμενο εισόδου (IEditorInput). Θεωρήστε το αντικείμενο εισόδου ως το έγγραφο ή το αρχείο που τροποποιείται. Οι αλλαγές που γίνονται σε μια λειτουργία επεξεργασίας δεν δεσμεύονται μέχρι να τις αποθηκεύσει ο χρήστης.
Μόνο μία λειτουργία επεξεργασίας μπορεί να είναι ανοικτή για τα δεδομένα εισόδου κάθε λειτουργίας επεξεργασίας σε μια σελίδα πάγκου εργασίας. Για παράδειγμα, εάν ο χρήστης τροποποιεί το αρχείο readme.txt στον πάγκο εργασίας, τυχόν νέο άνοιγμά του θα ενεργοποιήσει την ίδια λειτουργία επεξεργασίας. (Μπορείτε να ανοίξετε μια άλλη λειτουργία επεξεργασίας στο ίδιο αρχείο από διαφορετικό παράθυρο ή προοπτική πάγκου εργασίας). Αντίθετα με τις προβολές, όμως, το ίδιο είδος λειτουργίας επεξεργασίας, όπως η λειτουργία επεξεργασίας κειμένου, μπορεί να ανοίξει πολλές φορές εντός μιας σελίδας πάγκου εργασίας για διαφορετικά δεδομένα εισόδου.
Το σημείο επέκτασης org.eclipse.ui.editors του πάγκου εργασίας χρησιμοποιείται από πρόσθετες λειτουργίες για την προσθήκη λειτουργιών επεξεργασίας στον πάγκο εργασίας. Οι πρόσθετες λειτουργίες που συνεισφέρουν σε μια λειτουργία επεξεργασίας πρέπει να καταχωρούν την επέκταση λειτουργίας επεξεργασίας στο αρχείο τους plugin.xml , μαζί με πληροφορίες ρύθμισης της λειτουργίας επεξεργασίας. Μερικές από τις πληροφορίες λειτουργίας επεξεργασίας, όπως class, name και icon της υλοποίησης προς χρήση στα μενού και τις ετικέτες του πάγκου εργασίας, είναι παρόμοιες με τις πληροφορίες προβολής. Επιπλέον, οι επεκτάσεις λειτουργίας επεξεργασίας προσδιορίζουν τις επεκτάσεις αρχείου ή τα μοτίβα ονόματος αρχείου των ειδών αρχείου που καταλαβαίνει η λειτουργία επεξεργασίας. Οι λειτουργίες επεξεργασίας μπορούν επίσης να ορίσουν μια contributorClass, η οποία είναι η κλάση που προσθέτει ενέργειες στα μενού και τις γραμμές εργαλείων όταν είναι ενεργή η λειτουργία επεξεργασίας.
Η διεπαφή για λειτουργίες επεξεργασίες καθορίζεται στην IEditorPart, όμως οι πρόσθετες λειτουργίες μπορούν να επιλέξουν την επέκταση της κλάσης EditorPart αντί της υλοποίησης μιας IEditorPart από την αρχή.
Σημείωση: Μια επέκταση λειτουργίας επεξεργασίας μπορεί επίσης να ρυθμιστεί να εκκινεί ένα εξωτερικό πρόγραμμα ή να καλεί προϋπάρχοντα κώδικα java. Στην περιγραφή αυτή, επικεντρωνόμαστε σε εκείνες τις λειτουργίες επεξεργασίας που είναι πλήρως ενοποιημένες επί του παρόντος με τον πάγκο εργασίας και υλοποιούνται χρησιμοποιώντας την IEditorPart.
Το εργαλείο διαχείρισης αρχείων readme παρέχει μια προσαρμοσμένη λειτουργία επεξεργασίας κυρίως για τους σκοπούς της συνεισφοράς της δικής της σελίδας λειτουργίας διάρθρωσης περιεχομένου στην προβολή διάρθρωσης του πάγκου εργασίας.
Η ρύθμιση της επέκτασης λειτουργίας επεξεργασίας ορίζεται ως εξής.
<extension point = "org.eclipse.ui.editors"> <editor id = "org.eclipse.ui.examples.readmetool.ReadmeEditor" name="%Editors.ReadmeEditor" icon="icons/obj16/editor.png" class="org.eclipse.ui.examples.readmetool.ReadmeEditor" extensions="readme" contributorClass="org.eclipse.ui.examples.readmetool.ReadmeEditorActionBarContributor"> </editor> </extension>
Βλέπουμε τη συνηθισμένη μορφοποίηση ρύθμισης για id, name, icon, και class. Το γνώρισμα extensions περιγράφει τα είδη αρχείων που καταλαβαίνει η λειτουργία επεξεργασίας. (Θα μπορούσατε επίσης να προσδιορίσετε το γνώρισμα filenames εάν χρειάζεται να είστε πιο συγκεκριμένοι.) Η class υλοποιεί τη λειτουργία επεξεργασίας και η contributorClass έχει την ευθύνη παροχής ενεργειών σχετικών με τη λειτουργία επεξεργασία. Ας εξετάσουμε τη διεργασία συνεισφοράς πιο λεπτομερώς.
Η κλάση contributor προσθέτει ενέργειες σχετικές με τη λειτουργία επεξεργασίας στο μενού και τη γραμμή εργαλείων του πάγκου εργασίας. Πρέπει να υλοποιήσει τη διεπαφή IEditorActionBarContributor. Η διεργασία συνεισφοράς είναι ξεχωριστή από την ίδια τη λειτουργία επεξεργασίας, καθώς κάθε συγκεκριμένη σελίδα του πάγκου εργασίας μπορεί να έχει πολλαπλές λειτουργίες επεξεργασίας του ίδιου είδους. Μια διεργασία συνεισφοράς χρησιμοποιείται από κοινού από όλες τις λειτουργίες επεξεργασίας ενός συγκεκριμένου είδους, αντί κάθε χρήση λειτουργίας επεξεργασίας να δημιουργεί ενέργειες και εικόνες.
Στην ReadmeEditorActionBarContributor, συνεισφέρουμε τρεις ενέργειες, "Editor Action1," "Editor Action2," και "Editor Action3." Αυτές έχουν καθοριστεί από τη λειτουργία κατασκευής..
public ReadmeEditorActionBarContributor() { ... action1 = new EditorAction(MessageUtil.getString("Editor_Action1")); action1.setToolTipText(MessageUtil.getString("Readme_Editor_Action1")); action1.setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE_DISABLE); action1.setImageDescriptor(ReadmeImages.EDITOR_ACTION1_IMAGE_ENABLE); ... action2 = new RetargetAction(IReadmeConstants.RETARGET2, MessageUtil.getString("Editor_Action2")); action2.setToolTipText(MessageUtil.getString("Readme_Editor_Action2")); action2.setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE_DISABLE); action2.setImageDescriptor(ReadmeImages.EDITOR_ACTION2_IMAGE_ENABLE); ... action3 = new LabelRetargetAction(IReadmeConstants.LABELRETARGET3, MessageUtil.getString("Editor_Action3")); action3.setDisabledImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE_DISABLE); action3.setImageDescriptor(ReadmeImages.EDITOR_ACTION3_IMAGE_ENABLE); ... }
Τα ονόματα και τα εικονίδια για τις ενέργειες ορίζονται στον κώδικα αντί στο αρχείο plugin.xml. (Παραβλέπουμε τις διαφορές στις κλάσεις ενεργειών προς το παρόν μέχρι να εξετάσουμε τις ενέργειες μεταβλητής εμβέλειας.)
Σημειώστε πόσο παρόμοιες είναι οι πληροφορίες ενεργειών με τις πληροφορίες viewActions που εξετάσαμε στη μορφοποίηση για την ενέργεια προβολής. Οι ενέργειες ορίζονται σε κώδικα εφόσον πρέπει να διαχειριστούμε τη κοινή χρήση μεταξύ διαφορετικών χρήσεων της ίδιας λειτουργίας επεξεργασίας. Όταν οι ενέργειες δημιουργούνται στη λειτουργία κατασκευής, είναι ανεξάρτητες οποιασδήποτε συγκεκριμένης χρήσης της λειτουργίας επεξεργασίας.
Όταν ενεργοποιείται μια λειτουργία επεξεργασίας και και ενέργειες που πρέπει να εγκατασταθούν στα μενού και τη γραμμή εργαλείων του πάγκου εργασίας, αποστέλλεται το μήνυμα setActiveEditor στη διεργασία συνεισφοράς. Η διεργασία συνεισφοράς συνδέει τις ενέργειες λειτουργίας επεξεργασίας με μια συγκεκριμένη λειτουργία επεξεργασίας.
public void setActiveEditor(IEditorPart editor) { ... action1.setActiveEditor(editor); ... }
Όπως μπορείτε να δείτε, οι ενέργειες εμφανίζονται στο μενού και τη γραμμή εργαλείων του πάγκου εργασίας όταν ενεργοποιηθεί μια λειτουργία επεξεργασίας αρχείων readme.
Αυτά τα στοιχεία μενού και γραμμής εργαλείων εμφανίζονται μόνο όταν είναι ενεργή η λειτουργία επεξεργασίας. Η θέση για τα στοιχεία μενού και γραμμής εργαλείων μπορούν να προσδιοριστούν όπως περιγράφεται στις Διαδρομές μενού και γραμμών εργαλείων.
Η ίδια η λειτουργία επεξεργασίας αρχείων readme, η ReadmeEditor, δεν είναι ιδιαίτερα πολύπλοκη. Επεκτείνει την κλάση TextEditor έτσι ώστε να μπορεί να συνεισφέρει μια προσαρμοσμένη σελίδα λειτουργίας διάρθρωσης περιεχομένου στην προβολή διάρθρωσης κατά την τροποποίηση ενός αρχείου readme. Δεν αλλάζει συμπεριφορά εντός της λειτουργίας επεξεργασίας κειμένου.
Οι λειτουργίες επεξεργασίας έχουν συχνά αντίστοιχες λειτουργίες διάρθρωσης περιεχομένου που παρέχουν μια δομημένη προβολή των περιεχομένων της λειτουργίας επεξεργασίας και βοηθούν το χρήστη να πλοηγηθεί ανάμεσα στα περιεχόμενα της λειτουργίας επεξεργασίας. Δείτε Λειτουργίες διάρθρωσης περιεχομένου για περισσότερες λεπτομέρειες.
θα εξετάσουμε την υλοποίηση των λειτουργιών επεξεργασίας κειμένου στην ενότητα Λειτουργίες επεξεργασίας κειμένου και κείμενο πλατφόρμας.