Όταν η επιλογή είναι ετερογενής, η συνεισφορά θα εμφανίζεται εάν έχει καταχωρηθεί σε ένα κοινό είδος της επιλογής, εάν αυτό είναι εφικτό. Εάν δεν είναι εφικτό το απευθείας ταίριασμα, τότε γίνεται προσπάθεια ταιριάσματος υπερκλάσεων και υπερ-διεπαφών.
Η επιλογή μπορεί να περιοριστεί περαιτέρω, με τη χρήση ενός φίλτρου ονομάτων. Εάν χρησιμοποιείται, όλα τα αντικείμενα της επιλογής πρέπει να συμφωνούν με τα κριτήρια του φίλτρου, προκειμένου να εφαρμοστεί η συνεισφορά.
Μεμονωμένες ενέργειες σε μια συνεισφορά αντικειμένου μπορούν να χρησιμοποιούν το γνώρισμα enablesFor
για να προσδιορίζουν εάν θα πρέπει να εφαρμόζονται σε ένα μοναδικό, σε πολλά ή σε άλλα είδη επιλογής.
Αν αυτοί οι μηχανισμοί φιλτραρίσματος είναι ανεπαρκείς, τότε μια συνεισφορά ενεργειών μπορεί να χρησιμοποιήσει το μηχανισμό filter. Σε αυτή την περίπτωση, τα γνωρίσματα του αντικειμένου προορισμού περιγράφονται σε μια σειρά που αποτελείται από ζεύγη ονομάτων-τιμών. Τα γνωρίσματα που εφαρμόζονται στην επιλογή καθορίζονται ειδικά για το κάθε είδος και ισχύουν πέρα από τον τομέα του ίδιου του πάγκου εργασίας. Έτσι ο πάγκος εργασίας θα αναθέτει το φιλτράρισμα σε αυτό το επίπεδο στη συγκεκριμένη επιλογή.
Η ενεργοποίηση ή/και η ορατότητα μιας ενέργειας μπορεί να οριστεί χρησιμοποιώντας τα στοιχεία enablement και visibility αντίστοιχα. Αυτά τα δύο στοιχεία περιέχουν μια λογική έκφραση που αποτιμάται για τον καθορισμό των στοιχείων enablement ή/και visibility.
Η σύνταξη είναι η ίδια για τα στοιχεία enablement και visibility. Και τα δύο περιέχουν ένα υποστοιχείο λογικής έκφρασης. Στην πιο απλή περίπτωση, θα πρόκειται για ένα στοιχείο objectClass, objectState, pluginState ή systemProperty. Στην πιο σύνθετη περίπτωση, είναι δυνατός ο συνδυασμός των στοιχείων and, or και not για τη διαμόρφωση μιας λογικής έκφρασης. Τόσο το στοιχείο and, όσο και το or πρέπει να περιέχουν 2 υποστοιχεία. Το στοιχείο not πρέπει να περιέχει μόνο 1 υποστοιχείο.
<!ELEMENT extension (objectContribution , viewerContribution)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT objectContribution (filter* , visibility? , enablement? , menu* , action*)>
<!ATTLIST objectContribution
id CDATA #REQUIRED
objectClass CDATA #REQUIRED
nameFilter CDATA #IMPLIED
adaptable (true | false) "false">
Το στοιχείο αυτό χρησιμοποιείται για τον ορισμό μιας ομάδας ενεργειών ή/και μενού για οποιοδήποτε μενού περιβάλλοντος προβολής, για το οποίο έχουν επιλεχθεί τα αντικείμενα του συγκεκριμένου είδους.
<!ELEMENT viewerContribution (visibility? , menu* , action*)>
<!ATTLIST viewerContribution
id CDATA #REQUIRED
targetID CDATA #REQUIRED>
Το στοιχείο αυτό χρησιμοποιείται για τον ορισμό μιας ομάδας ενεργειών ή/και μενού για ένα συγκεκριμένο μενού περιβάλλοντος τμήματος προβολής ή λειτουργίας επεξεργασίας.
<!ELEMENT action (selection* , enablement?)>>
<!ATTLIST action
id CDATA #REQUIRED
label CDATA #REQUIRED
definitionId CDATA #IMPLIED
menubarPath CDATA #IMPLIED
icon CDATA #IMPLIED
helpContextId CDATA #IMPLIED
style (push|radio|toggle|pulldown)
state (true | false)
class CDATA #REQUIRED
enablesFor CDATA #IMPLIED
overrideActionId CDATA #IMPLIED
tooltip CDATA #IMPLIED>
Αυτό το στοιχείο ορίζει μια ενέργεια την οποία μπορεί ο χρήστης να καλέσει στο περιβάλλον χρήστη.
push | - ως κανονικό στοιχείο μενού ή εργαλείου. | |
radio | - ως στοιχείο μενού στυλ κουμπιού επιλογής ή στοιχείο εργαλείου. Ενέργειες με το στυλ επιλογής εντός της ίδιας ομάδας μενού ή γραμμής εργαλείων συμπεριφέρονται ως σύνολο επιλογής. Η αρχική τιμή καθορίζεται από το γνώρισμα state. | |
toggle | - ως στοιχείο μενού με στυλ συμβόλου επιλογής ή ως στοιχείο εργαλείου εναλλαγής. Η αρχική τιμή καθορίζεται από το γνώρισμα state. | |
pulldown | - ως στοιχείο μενού σε επικαλυπτόμενο στυλ. |
! | - έχουν επιλεγεί 0 στοιχεία | |
? | - έχουν επιλεγεί 0 ή 1 στοιχεία | |
+ | - έχουν επιλεγεί 1 ή περισσότερα στοιχεία | |
multiple, 2+ | - έχουν επιλεγεί 2 ή περισσότερα στοιχεία | |
n | - έχει επιλεγεί ακριβής αριθμός στοιχείων. Για παράδειγμα: Το γνώρισμα enablesFor=" 4" ενεργοποιεί την ενέργεια μόνο όταν επιλεγούν 4 στοιχεία | |
* | - έχει επιλεγεί οποιοσδήποτε αριθμός στοιχείων |
Τα κριτήρια ενεργοποίησης για μια επέκταση ενέργειας ορίζονται αρχικά από τα enablesFor, selection και enablement. Ωστόσο, μόλις δημιουργηθεί χρήση για τον εκπρόσωπο ενέργειας, μπορεί να ελέγχει την κατάσταση ενεργοποίησης της ενέργειας απευθείας εντός της μεθόδου selectionChanged.
<!ELEMENT filter EMPTY>
<!ATTLIST filter
name CDATA #REQUIRED
value CDATA #REQUIRED>
Αυτό το στοιχείο χρησιμοποιείται για την αποτίμηση γνωρίσματος state κάθε αντικειμένου της τρέχουσας επιλογής. Αντιστοίχιση γίνεται μόνο αν κάθε αντικείμενο στην επιλογή έχει την καθορισμένη κατάσταση γνωρίσματος. Κάθε αντικείμενο στην επιλογή πρέπει να υλοποιεί ή να προσαρμόζεται στη διεπαφή org.eclipse.ui.IActionFilter.
<!ELEMENT menu (separator+ , groupMarker*)>
<!ATTLIST menu
id CDATA #REQUIRED
label CDATA #REQUIRED
path CDATA #IMPLIED>
Αυτό το στοιχείο χρησιμοποιείται για να ορίσει ένα νέο μενού.
<!ELEMENT separator EMPTY>
<!ATTLIST separator
name CDATA #REQUIRED>
Αυτό το στοιχείο χρησιμοποιείται για τη δημιουργία ενός διαχωριστικού στο νέο μενού.
<!ELEMENT groupMarker EMPTY>
<!ATTLIST groupMarker
name CDATA #REQUIRED>
Αυτό το στοιχείο χρησιμοποιείται για τη δημιουργία μιας επώνυμης ομάδας στο νέο μενού. Δεν έχει οπτική αναπαράσταση στο νέο μενού, αντίθετα με το στοιχείο separator.
<!ELEMENT selection EMPTY>
<!ATTLIST selection
class CDATA #REQUIRED
name CDATA #IMPLIED>
Αυτό το στοιχείο χρησιμοποιείται για τον καθορισμό της ενεργοποίησης ενέργειας με βάση την τρέχουσα επιλογή. Παραβλέπεται εάν έχει προσδιοριστεί το στοιχείο enablement.
<!ELEMENT enablement (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Αυτό το στοιχείο χρησιμοποιείται για τον ορισμό της ενεργοποίησης της επέκτασης.
<!ELEMENT visibility (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Αυτό το στοιχείο χρησιμοποιείται για τον ορισμό της ορατότητας της επέκτασης.
<!ELEMENT and (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Το στοιχείο αυτό εκφράζει ένα λογικό τελεστή AND στο αποτέλεσμα της αποτίμησης των εκφράσεων των δύο υποστοιχείων του.
<!ELEMENT or (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Το στοιχείο αυτό εκφράζει ένα λογικό τελεστή OR στο αποτέλεσμα της αποτίμησης των εκφράσεων των δύο υποστοιχείων του.
<!ELEMENT not (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Το στοιχείο αυτό εκφράζει ένα λογικό τελεστή ΝΟΤ στο αποτέλεσμα της αποτίμησης των εκφράσεων των υποστοιχείων του.
<!ELEMENT objectClass EMPTY>
<!ATTLIST objectClass
name CDATA #REQUIRED>
Αυτό το στοιχείο χρησιμοποιείται για την αποτίμηση της κλάσης ή της διεπαφής κάθε αντικειμένου στην τρέχουσα επιλογή. Εάν κάθε αντικείμενο στην επιλογή υλοποιεί την προσδιορισμένη κλάση ή διεπαφή, η έκφραση αποτιμάται ως "true".
<!ELEMENT objectState EMPTY>
<!ATTLIST objectState
name CDATA #REQUIRED
value CDATA #REQUIRED>
Αυτό το στοιχείο χρησιμοποιείται για την αποτίμηση γνωρίσματος state κάθε αντικειμένου της τρέχουσας επιλογής. Εάν κάθε αντικείμενο στην επιλογή έχει προσδιορισμένο το γνώρισμα state, η έκφραση αποτιμάται ως true. Για την αποτίμηση αυτού του είδους έκφρασης, κάθε αντικείμενο στην επιλογή πρέπει να υλοποιεί ή να προσαρμόζεται στη διεπαφή org.eclipse.ui.IActionFilter.
<!ELEMENT pluginState EMPTY>
<!ATTLIST pluginState
id CDATA #REQUIRED
value (installed|activated) "installed">
Αυτό το στοιχείο χρησιμοποιείται για την αποτίμηση της κατάστασης μιας πρόσθετης λειτουργίας. Μια πρόσθετη λειτουργία μπορεί να βρίσκεται σε μία από τις παρακάτω καταστάσεις: installed (ισοδύναμη με την έννοια "resolved" του OSGi) ή activated (ισοδύναμη με την έννοια "active"του OSGi).
<!ELEMENT systemProperty EMPTY>
<!ATTLIST systemProperty
name CDATA #REQUIRED
value CDATA #REQUIRED>
Αυτό το στοιχείο χρησιμοποιείται για την αποτίμηση της κατάστασης μερικών ιδιοτήτων συστήματος. Η τιμή ιδιότητας ανακτάται από το java.lang.System.
<!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Γενικό κεντρικό στοιχείο. Το στοιχείο μπορεί να χρησιμοποιηθεί σε ένα σημείο επέκτασης για τον ορισμό της έκφρασης ενεργοποίησης. Τα θυγατρικά στοιχεία μιας έκφρασης ενεργοποίησης συνδυάζονται με τη χρήση του τελεστή "and".
<!ELEMENT not (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>
Το στοιχείο αυτό εκφράζει ένα λογικό τελεστή ΝΟΤ στο αποτέλεσμα της αποτίμησης της έκφρασης του υποστοιχείου του.
<!ELEMENT and (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Το στοιχείο αυτό εκφράζει ένα λογικό τελεστή AND στο αποτέλεσμα της αποτίμησης των εκφράσεων των υποστοιχείων του.
<!ELEMENT or (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
Το στοιχείο αυτό εκφράζει ένα λογικό τελεστή OR στο αποτέλεσμα της αποτίμησης των εκφράσεων των υποστοιχείων του.
<!ELEMENT instanceof EMPTY>
<!ATTLIST instanceof
value CDATA #REQUIRED>
Αυτό το στοιχείο χρησιμοποιείται για την εκτέλεση μιας χρήσης ελέγχου του εστιαζόμενου αντικειμένου. Η έκφραση επιστρέφει EvaluationResult.TRUE αν το είδος του αντικειμένου αποτελεί υπο-είδος του του είδους που προσδιορίζεται από την τιμή γνωρίσματος. Διαφορετικά, επιστρέφει EvaluationResult.FALSE.
<!ELEMENT test EMPTY>
<!ATTLIST test
property CDATA #REQUIRED
args CDATA #IMPLIED
value CDATA #IMPLIED>
Αυτό το στοιχείο χρησιμοποιείται για την αποτίμηση γνωρίσματος state του εστιαζόμενου αντικειμένου. Το σύνολο των ιδιοτήτων που μπορούν να τεθούν υπό δοκιμή μπορεί να επεκταθεί με τη χρήση του σημείου επέκτασης λειτουργίας δοκιμής ιδιοτήτων. Η έκφραση δοκιμής επιστρέφει την EvaluationResult.NOT_LOADED αν η λειτουργία δοκιμής ιδιοτήτων που εκτελεί στην ουσία τη δοκιμή δεν έχει φορτωθεί ακόμα.
<!ELEMENT systemTest EMPTY>
<!ATTLIST systemTest
property CDATA #REQUIRED
value CDATA #REQUIRED>
Δοκιμάζει μια ιδιότητα συστήματος καλώντας τη μέθοδο System.getProperty και συγκρίνει το αποτέλεσμα με την τιμή που καθορίζεται μέσω του γνωρίσματος value.
<!ELEMENT equals EMPTY>
<!ATTLIST equals
value CDATA #REQUIRED>
Αυτό το στοιχείο χρησιμοποιείται για την εκτέλεση ενός ελέγχου ισοδυναμίας (equals) του εστιαζόμενου αντικειμένου. Η έκφραση επιστρέφει EvaluationResult.TRUE αν το αντικείμενο ισούται με την τιμή που παρέχεται από την τιμή γνωρίσματος. Διαφορετικά, επιστρέφει EvaluationResult.FALSE.
<!ELEMENT count EMPTY>
<!ATTLIST count
value CDATA #REQUIRED>
Αυτό το στοιχείο χρησιμοποιείται για τη δοκιμή του αριθμού των στοιχείων σε μια συλλογή.
<!ELEMENT with (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST with
variable CDATA #REQUIRED>
Αυτό το στοιχείο αλλάζει το αντικείμενο προς επιθεώρηση για όλα τα θυγατρικά στοιχεία του με το αντικείμενο στο οποίο γίνεται αναφορά από τη δεδομένη μεταβλητή. Αν η μεταβλητή δεν μπορεί να αναλυθεί, τότε η έκφραση θα εμφανίσει ένα ExpressionException κατά την αποτίμησή του. Τα θυγατρικά στοιχεία μιας έκφρασης "with" συνδυάζονται με τη χρήση του τελεστή "and".
<!ELEMENT resolve (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST resolve
variable CDATA #REQUIRED
args CDATA #IMPLIED>
Αυτό το στοιχείο αλλάζει το αντικείμενο προς επιθεώρηση για όλα τα θυγατρικά στοιχεία του με το αντικείμενο στο οποίο γίνεται αναφορά από τη δεδομένη μεταβλητή. Αν η μεταβλητή δεν μπορεί να αναλυθεί, τότε η έκφραση θα εμφανίσει ένα ExpressionException κατά την αποτίμησή του. Τα θυγατρικά στοιχεία μιας έκφρασης "with" συνδυάζονται με τη χρήση του τελεστή "and".
<!ELEMENT adapt (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST adapt
type CDATA #REQUIRED>
Αυτό το στοιχείο χρησιμοποιείται για την προσαρμογή του εστιαζόμενου στο είδος που καθορίζεται από το είδος γνωρίσματος. Η έκφραση επιστρέφει "not loaded" αν ο προσαρμογέας ή το είδος στο οποίο γίνεται παραπομπή δεν έχει φορτωθεί ακόμα. Εμφανίζει ExpressionException κατά την αποτίμηση αν το όνομα είδους δεν υπάρχει. Τα θυγατρικά στοιχεία μιας έκφρασης "adapt" συνδυάζονται με τη χρήση του τελεστή "and".
<!ELEMENT iterate (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>
<!ATTLIST iterate
operator (or|and) >
Αυτό το στοιχείο χρησιμοποιείται για την επαναληπτική προσέγγιση σε μια μεταβλητή του τύπου java.util.Collection. Αν το εστιαζόμενο αντικείμενο δεν είναι του τύπου java.util.Collection, τότε εμφανίζεται μια ExpressionException κατά την αποτίμηση της έκφρασης.
Στο παραπάνω παράδειγμα, η προσδιορισμένη ενέργεια συνεισφοράς αντικειμένου θα ενεργοποιείται μόνο για μία μοναδική επιλογή (γνώρισμα enablesFor). Επιπλέον, κάθε αντικείμενο της επιλογής πρέπει να υλοποιεί τη συγκεκριμένη διεπαφή (IFile) και πρέπει να είναι ένα αρχείο Java. Η ενέργεια αυτή θα προστεθεί στο υπο-μενού που δημιουργήθηκε προηγουμένως. Η συνεισφορά αυτή θα είναι ενεργή σε οποιαδήποτε προβολή που διαθέτει την απαιτούμενη επιλογή.<extension point=
"org.eclipse.ui.popupMenus"
>
<objectContribution id=
"com.xyz.C1"
objectClass=
"org.eclipse.core.resources.IFile"
nameFilter=
"*.java"
>
<menu id=
"com.xyz.xyzMenu"
path=
"additions"
label=
"&XYZ Java Tools"
>
<separator name=
"group1"
/>
</menu>
<action id=
"com.xyz.runXYZ"
label=
"&Run XYZ Tool"
style=
"push"
menubarPath=
"com.xyz.xyzMenu/group1"
icon=
"icons/runXYZ.gif"
helpContextId=
"com.xyz.run_action_context"
class=
"com.xyz.actions.XYZToolActionDelegate"
enablesFor=
"1"
/>
</objectContribution>
<viewerContribution id=
"com.xyz.C2"
targetID=
"org.eclipse.ui.views.TaskList"
>
<action id=
"com.xyz.showXYZ"
label=
"&Show XYZ"
style=
"toggle"
state=
"true"
menubarPath=
"additions"
icon=
"icons/showXYZ.gif"
helpContextId=
"com.xyz.show_action_context"
class=
"com.xyz.actions.XYZShowActionDelegate"
/>
</viewerContribution>
</extension>
Αντίθετα, η παραπάνω συνεισφορά προβολής θα εμφανίζεται μόνο στο μενού περιβάλλοντος της προβολής "Εργασίες" και δεν θα επηρεάζεται από την επιλογή στην προβολή.
Ακολουθεί ένα παράδειγμα του μηχανισμού φιλτραρίσματος. Στην περίπτωση αυτή, η ενέργεια θα εμφανίζεται μόνο για IMarkers που έχουν ολοκληρωθεί και έχουν υψηλή προτεραιότητα.
Παρακάτω δίνεται ένα άλλο παράδειγμα χρήσης του στοιχείου visibility:<extension point=
"org.eclipse.ui.popupMenus"
>
<objectContribution id=
"com.xyz.C3"
objectClass=
"org.eclipse.core.resources.IMarker"
>
<filter name=
"done"
value=
"true"
/>
<filter name=
"priority"
value=
"2"
/>
<action id=
"com.xyz.runXYZ"
label=
"High Priority Completed Action Tool"
icon=
"icons/runXYZ.gif"
class=
"com.xyz.actions.MarkerActionDelegate"
>
</action>
</objectContribution>
</extension>
<extension point=
"org.eclipse.ui.popupMenus"
>
<viewerContribution id=
"com.xyz.C4"
targetID=
"org.eclipse.ui.views.TaskList"
>
<visibility>
<and>
<pluginState id=
"com.xyz"
value=
"activated"
/>
<systemProperty name=
"ADVANCED_MODE"
value=
"true"
/>
</and>
</visibility>
<action id=
"com.xyz.showXYZ"
label=
"&Show XYZ"
style=
"push"
menubarPath=
"additions"
icon=
"icons/showXYZ.gif"
helpContextId=
"com.xyz.show_action_context"
class=
"com.xyz.actions.XYZShowActionDelegate"
>
</action>
</viewerContribution>
</extension>
Στο παραπάνω παράδειγμα, η προσδιορισμένη ενέργεια θα εμφανίζεται ως στοιχείο μενού στο μενού περιβάλλοντος της προβολής "Εργασία", αλλά μόνο αν η πρόσθετη λειτουργία "com.xyz" είναι ενεργή και η προσδιορισμένη ιδιότητα συστήματος έχει την τιμή "true".
Σημείωση: Για λόγους συμβατότητας με προηγούμενες εκδόσεις, το org.eclipse.ui.IActionDelegate μπορεί να υλοποιείται για συνεισφορές αντικειμένου.
Η επέκταση μενού περιβάλλοντος μέσα σε ένα τμήμα είναι εφικτή μόνο όταν το τμήμα προορισμού δημοσιεύει ένα μενού για επέκταση. Αυτό συνιστάται, καθώς βελτιώνει την επεκτασιμότητα του προϊόντος. Για να επιτευχθεί, κάθε τμήμα θα πρέπει να δημοσιεύσει τα μενού περιβάλλοντος που ορίζονται με την κλήση του IWorkbenchPartSite.registerContextMenu. Αφού πραγματοποιηθεί αυτό, ο πάγκος εργασίας θα εισάγει αυτόματα όλες τις επεκτάσεις ενεργειών που υπάρχουν.
Για κάθε καταχωρημένο μενού πρέπει να παρέχεται μια ταυτότητα μενού. Για λόγους συνέπειας μεταξύ των τμημάτων, θα πρέπει να ακολουθείται η παρακάτω στρατηγική από όλους τους υλοποιητές των τμημάτων.
Κάθε μενού περιβάλλοντος το οποίο καταχωρείται στον πάγκο εργασίας θα πρέπει επίσης να περιέχει ένα τυπικό σημείο εισαγωγής με ταυτότητα IWorkbenchActionConstants.MB_ADDITIONS. Άλλες πρόσθετες λειτουργίες θα χρησιμοποιούν την τιμή αυτή ως σημείο αναφοράς για την εισαγωγή. Το σημείο εισαγωγής μπορεί να οριστεί από την προσθήκη ενός GroupMarker στο μενού, σε μια κατάλληλη θέση για εισαγωγή.
Ένα αντικείμενο στον πάγκο εργασίας που αποτελεί την επιλογή σε ένα μενού περιβάλλοντος, μπορεί να ορίζει μια διεπαφή org.eclipse.ui.IActionFilter. Αυτό αποτελεί μια στρατηγική φιλτραρίσματος η οποία μπορεί να πραγματοποιεί φιλτράρισμα για κάθε είδος. Ο πάγκος εργασίας θα ανακτά το φίλτρο για την επιλογή, εξετάζοντας αν υλοποιεί το IActionFilter. Σε περίπτωση αποτυχίας, ο πάγκος εργασίας θα αναζητά ένα φίλτρο μέσω του μηχανισμού IAdaptable.
Οι ετικέτες ενεργειών και μενού μπορούν να περιέχουν ειδικούς χαρακτήρες που κωδικοποιούν μνημονικά στοιχεία, τα οποία ορίζονται με τη χρήση του συμβόλου ("&") μπροστά από έναν επιλεγμένο χαρακτήρα στο μεταφρασμένο κείμενο. Εφόσον το σύμβολο '&' δεν επιτρέπεται σε σειρές χαρακτήρων XML, χρησιμοποιήστε την οντότητα χαρακτήρα &.
Εάν δύο ή περισσότερες ενέργειες συνεισφέρονται σε ένα μενού με μία μοναδική επέκταση, οι ενέργειες θα εμφανιστούν με την αντίστροφη σειρά από αυτή που έχουν στη λίστα του αρχείου plugin.xml. Αυτή η συμπεριφορά είναι ομολογουμένως μη διαισθητική. Ωστόσο, ανακαλύφθηκε μετά το κλείδωμα του ΑΡΙ της πλατφόρμας Eclipse. Η αλλαγή της συμπεριφοράς αυτή τη στιγμή θα διέκοπτε κάθε πρόσθετη λειτουργία που βασίζεται στην υπάρχουσα συμπεριφορά.
Τα στοιχεία selection και enablement δεν μπορούν να συνυπάρχουν. Το στοιχείο enablement μπορεί να αντικαταστήσει το στοιχείο selection χρησιμοποιώντας τα υπο-στοιχεία objectClass και objectState. Για παράδειγμα, το ακόλουθο:
μπορεί να εκφραστεί χρησιμοποιώντας:<selection class=
"org.eclipse.core.resources.IFile"
name=
"*.java"
>
</selection>
<enablement>
<and>
<objectClass name=
"org.eclipse.core.resources.IFile"
/>
<objectState name=
"extension"
value=
"java"
/>
</and>
</enablement>
Copyright (c) 2000, 2005 IBM Corporation και άλλων.
Με την επιφύλαξη παντός δικαιώματος. Αυτό το πρόγραμμα και τα
συνοδευτικά του υλικά διατίθενται βάσει των όρων της κοινής άδειας
χρήσης Eclipse Public License v1.0 που συνοδεύει αυτή τη διανομή και
διατίθεται στην ακόλουθη διεύθυνση:
http://www.eclipse.org/legal/epl-v10.html.