org.eclipse.ui.actionSets

Η πρόσθετη λειτουργία σας μπορεί να συνεισφέρει μενού, στοιχεία μενού και γραμμής εργαλείων στα μενού και τη γραμμή εργαλείων του πάγκου εργασίας χρησιμοποιώντας το σημείο επέκτασης org.eclipse.ui.actionSets. Προκειμένου να μειωθεί η συμφόρηση που θα μπορούσε να προκληθεί από την εμφάνιση μεμιάς όλων των συνεισφορών μενού κάθε πρόσθετης λειτουργίας, οι συνεισφορές ομαδοποιούνται σε σύνολα ενεργειών που καθίστανται ορατά από τις προτιμήσεις χρήστη.

Μπορείτε να δείτε ποια σύνολα ενεργειών συνεισφέρθηκαν στον πάγκο εργασίας σας επιλέγοντας Παράθυρο > Προσαρμογή προοπτικής... από το μενού του πάγκου εργασίας. Αυτή η επιλογή θα σας εμφανίσει ένα πλαίσιο διαλόγου με μια λίστα από σύνολα ενεργειών ως ομάδες εντολών. Το σημάδι ελέγχου από μια ομάδα εντολών σημαίνει ότι οι ενέργειες μενού και γραμμής εργαλείων είναι ορατές στον πάγκο εργασίας. Μπορείτε να επιλέξετε το όνομα της ομάδας εντολών για να δείτε τη λίστα των διαθέσιμων ενεργειών μενού και γραμμής εργαλείων στα δεξιά. Το παρακάτω σχήμα εμφανίζει τη λίστα των ομάδων εντολών που είναι διαθέσιμες στον πάγκο εργασίας σας.  (Ο πάγκος εργασίας σας ίσως είναι διαφορετικός ανάλογα με τις πρόσθετες λειτουργίες που έχετε εγκαταστήσει και την προοπτική που είναι ενεργή.)

Πλαίσιο διαλόγου "Προσαρμογή προοπτικών" με λίστα συνόλων ενεργειών

Το εργαλείο διαχείρισης αρχείων readme χρησιμοποιεί ένα σύνολο εργαλείων για τη συνεισφορά αρκετών διαφορετικών ενεργειών "Άνοιγμα προγράμματος πλοήγησης αρχείων readme" στο μενού του πάγκου εργασίας.  (Συνεισφέραμε μια παρόμοια ενέργεια στο αναδυόμενο μενού της λειτουργία πλοήγησης πόρων.)  Ακολουθεί η μορφοποίηση:

<extension point = "org.eclipse.ui.actionSets">
	   <actionSet id="org_eclipse_ui_examples_readmetool_actionSet"
		   label="%ActionSet.name"
		   visible="true">
		   <menu id="org_eclipse_ui_examples_readmetool"
			   label="%ActionSet.menu"
			   path="window/additions"> 
			   <separator name="slot1"/>
			   <separator name="slot2"/>
			   <separator name="slot3"/>
		   </menu>
		   <action id="org.eclipse.ui.examples.readmetool.readmeAction"
			   menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
			   toolbarPath="readme"
			   label="%ReadmeAction.label"
			   tooltip="%ReadmeAction.tooltip"
			   helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
			   icon="icons/ctool16/openbrwsr.png"
			   class="org.eclipse.ui.examples.readmetool.WindowActionDelegate"
			   definitionId="org.eclipse.ui.examples.readmetool.readmeAction"
			   enablesFor="1">
			   <selection class="org.eclipse.core.resources.IFile"
					name="*.readme">
			   </selection>
		</action>
		   ...
	</actionSet>
    </extension>

Πρόκειται για μεγάλο τμήμα κώδικα,οπότε ας το πάρουμε βήμα προς βήμα, εξετάζοντας μόνο την πρώτη ενέργεια προς το παρόν.  

Πρώτον, γίνεται η δήλωση και η απόδοση ταυτότητας στην ενέργεια.  Η ετικέτα "Ενέργειες αρχείου readme" (που έχουν καθοριστεί για το κλειδί %ActionSet.name στο αρχείο ιδιοτήτων της πρόσθετης λειτουργίας) χρησιμοποιείται για την εμφάνιση του συνόλου ενεργειών στο πλαίσιο διαλόγου που εμφανίζεται επάνω.  Εφόσον ορίσαμε το γνώρισμα visible ως true, το σύνολο ενεργειών του πάγκου εργασίας θα είναι αρχικά επιλεγμένο στη λίστα των συνόλων ενεργειών και οι ενέργειες θα είναι ορατές.

Το υπόλοιπο της δήλωσης συνόλου ενεργειών ασχολείται με τον ορισμό του μενού όπου εμφανίζονται οι ενέργειες και με τις ίδιες τις ενέργειες.

Ορίζουμε ένα μενού του οποίου η ετικέτα εμφανίζεται στα μενού του πάγκου εργασίας.  Η διαδρομή του μενού λέει στον πάγκο εργασίας να τοποθετήσει το νέο μενού στην υποδοχή Προσθήκες του μενού Παράθυρο.  (Για περιγραφή των διαδρομών και των υποδοχών μενού, δείτε Διαδρομές μενού και γραμμής εργαλείων.)  ορίζουμε επίσης μερικές υποδοχές στο νέο μας μενού, ώστε οι ενέργειες να μπορούν να εισαχθούν σε συγκεκριμένες θέσεις στο μενού μας).

Αυτή η μορφοποίηση μόνη είναι αρκετή για να προσκαλέσει την εμφάνιση του μενού στο μενού Παράθυρο του πάγκου εργασίας.

Μενού "Παράθυρο" του πάγκου εργασίας με καταχώρηση "Λειτουργία επεξεργασίας αρχείου readme"

Στη συνέχεια, ορίζουμε τις ίδιες τις ενέργειες.  

ορισμός ενέργειας (id, label, icon, class) είναι παρόμοιος με των άλλων ενεργειών που είδαμε σε προβολές, λειτουργίες επεξεργασίας και αναδυόμενα παράθυρα.  Εδώ θα επικεντρωθούμε σε αυτό που διαφέρει:  πού πάει η ενέργεια;  Χρησιμοποιούμε τις menubarPath και toolbarPath για να υποδείξουμε τη θέση της.  Πρώτα, ορίζουμε την menubarPath για την προσθήκη της ενέργειας σε μια υποδοχή στο μενού που μόλις ορίσαμε ( "window/org_eclipse_ui_examples_readmetool/slot1").

Μενού "Λειτουργία επεξεργασίας αρχείου readme" με στοιχεία μενού

Στη συνέχεια, ορίζουμε μια νέα toolbarPath για να εισάγουμε τις ενέργειες στη γραμμή εργαλείων του πάγκου εργασίας. Αφού ορίσαμε μια νέα διαδρομή εργαλείων, "readme", ο πάγκος εργασίας θα αποφασίσει που πηγαίνει σε σχέση με άλλες συνεισφορές γραμμής εργαλείων πρόσθετης λειτουργίας.

Γραμμή εργαλείων πάγκου εργασίας με ενέργεια αρχείου readme

Τι συμβαίνει όταν η ενέργεια επιλεγεί από το χρήστη;  Η ενέργεια υλοποιείται από την κλάση που προσδιορίζεται στο γνώρισμα class.  Η κλάση της ένεργειας πρέπει να υλοποιεί τις διασυνδέσεις IWorkbenchWindowActionDelegate ή IWorkbenchWindowPulldownDelegate εάν η ενέργεια εμφανιστεί ως αναπτυσσόμενο στοιχείο εργαλείου στη γραμμή εργαλείων.  Εφόσον δεν δημιουργούμε ένα αναπτυσσόμενο στοιχείο εργαλείου, παρέχουμε μια WindowActionDelegate.  Αυτή η κλάση είναι παρόμοια με την ObjectActionDelegate.  Εκκινεί το πλαίσιο διαλόγου ενοτήτων αρχείων readme όταν ο χρήστης επιλέγει την ενέργεια.  (Θα εξετάσουμε το πλαίσιο διαλόγου ενοτήτων στα Πλαίσια διαλόγου εφαρμογών.)

Η ενέργεια παρέχει επίσης συνθήκες ενεργοποίησης για τα στοιχεία μενού και γραμμής εργαλείων.  Τα στοιχεία μενού και γραμμής εργαλείων θα ενεργοποιηθούν μόνο όταν επιλεγεί ένα μόνο (enablesFor="1") αρχείο readme (selectionClass ="org.eclipse.core.resources.IFile" name="*.readme"). Το στοιχείο μενού και γραμμής εργαλείων αυτής της ενέργειας εμφανίζονται και ενεργοποιούνται χάρη στη μορφοποίηση στο αρχείο plugin.xml.  Κάνενα μέρος του κώδικα της πρόσθετης λειτουργίας δεν θα εκτελεστεί μέχρι να επιλεγεί η ενέργεια από τον χρήστη και να εκτελεστεί η κλάση της ενέργειας από τον πάγκο εργασίας.

Το definitionId επιτρέπει τη διασύνδεση της ενέργειας με μια εντολή που δημιουργήθηκε από την επέκτασηorg.eclipse.ui.commands, η οποία μπορεί να χρησιμοποιηθεί για δεσμούς πλήκτρων. Όλες οι ενέργειες σε ένα actionSets πρέπει να διασυνδέονται με μια εντολή, είτε με υπάρχουσες εντολές που παρέχονται από τον πάγκο εργασίας είτε με εντολές που έχουν δημιουργηθεί από την πρόσθετη λειτουργία συνεισφοράς. Ανατρέξατε στο Εντολές.

θα εξετάσουμε τις άλλες δύο ενέργειες αργότερα στο πλαίσιο που αφορά τις ενέργειες μεταβλητής εμβέλειας.