Μενού

org.eclipse.ui.menus

3.2

Αυτό το σημείο επέκτασης επιτρέπει στον προγραμματιστή πρόσθετων λειτουργιών να ορίσει μενού, διαχωριστικά, λογικές ομάδες και στοιχεία μενού -- που εμφανίζονται οπουδήποτε εντός της εφαρμογής, από τις γραμμές κατάστασης έως τα μενού περιβάλλοντος. Επιτρέπει επίσης τον ορισμό συνόλων τέτοιων συνεισφορών (π.χ. σύνολα ενεργειών). Αυτά τα σύνολα ενεργειών μπορούν να ενεργοποιούνται και να απενεργοποιούνται από τον τελικό χρήστη. Εν συντομία, το σημείο επέκτασης των μενού περιέχει όλα τα στοιχεία παρουσίασης (εκτός από τα εικονίδια) για τη συνεισφορά σε οποιοδήποτε μενού ή περιοχή αποκοπής στο Eclipse.

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

ΣΗΜΕΙΩΣΗ: Στο 3.2, το μοναδικό τμήμα αυτού του μηχανισμού επέκτασης που έχει υλοποιηθεί είναι αυτό που συσχετίζεται με τις συνεισφορές 'αποκοπής'. Η προσπάθεια προσθήκης στοιχείων, μενού, γραμμών εργαλείων ή καταχωρήσεων γραμμής κατάστασης θα λειτουργήσει ως NO-OP.

<!ELEMENT extension (item* , menu* , group* , widget*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT item (parameter* , location* , visibleWhen?)>

<!ATTLIST item

id        CDATA #REQUIRED

commandId CDATA #REQUIRED

menuId    CDATA #IMPLIED>

Ένα στοιχείο μπορεί να είναι ένα στοιχείο μενού ή ένα στοιχείο αποκοπής, ανάλογα με το πού βρίσκεται. Το κείμενο και η εικόνα που συσχετίζονται με το στοιχείο θα εμφανιστούν από την εντολή.



<!ELEMENT menu (location* , visibleWhen?)>

<!ATTLIST menu

id    CDATA #REQUIRED

label CDATA #IMPLIED>

Ένα μενού μπορεί να εμφανιστεί είτε συνημμένο σε ένα στοιχείο εργαλείου, είτε οπουδήποτε αλλού εντός ενός μενού προβολής, μενού περιβάλλοντος ή γραμμής μενού ανώτερου επιπέδου. Ο προγραμματιστής πρόσθετων λειτουργιών μπορεί ελεύθερα να θεωρήσει ότι υπάρχει ένα μενού και μια γραμμή εργαλείων για κάθε προβολή, και ότι υπάρχει μια γραμμή μενού ανώτερου επιπέδου. Τα μενού περιβάλλοντος καταχωρούνται με προγραμματισμό προτού μπορέσουν να χρησιμοποιηθούν (ανατρέξτε στις πληροφορίες API).

Ένα μενού μπορεί να περιέχει μόνο ομάδες.



<!ELEMENT group (location*)>

<!ATTLIST group

id                CDATA #REQUIRED

separatorsVisible (true | false) "true">

Μια λογική ομάδα. Μπορεί να είναι ορατή (π.χ. τα διαχωριστικά εμφανίζονται πριν και μετά, όπως κρίνεται σωστό) ή μη ορατή. Από προεπιλογή, οι λογικές ομάδες είναι ορατές.

Μια ομάδα μπορεί να περιέχει μενού, στοιχεία και άλλες ομάδες.



<!ELEMENT widget (location* , class? , visibleWhen? , layout?)>

<!ATTLIST widget

id    CDATA #REQUIRED

class CDATA #REQUIRED>

Ένα μενού ή στοιχείο αποκοπής που αποκτά απευθείας πρόσβαση στα όργανα. Για παράδειγμα, μπορεί να χρησιμοποιηθεί για την εμφάνιση ενός σύνθετου πλαισίου. Δυστυχώς, αυτό σημαίνει ότι εάν ένα στοιχείο οργάνου γίνει ορατό στο περιβάλλον χρήστη, θα οδηγήσει σε φόρτωση της πρόσθετης λειτουργίας. Χρησιμοποιήστε αυτό το στοιχείο προσεκτικά, επειδή μπορεί να υπάρξουν προβλήματα απόδοσης. Μπορεί επίσης να προκαλέσει προβλήματα σε υποστήριξη μακροεντολών, σε σενάρια και σχεδόν σε οποιονδήποτε άλλο μηχανισμό που βασίζεται σε εντολές. Όταν χρησιμοποιείται ως αποκοπή, το όργανο θα έχει ως αποτέλεσμα μόνο τη φόρτωση της πρόσθετης λειτουργίας όταν γίνει ορατή στο UI.



<!ELEMENT layout EMPTY>

<!ATTLIST layout

fillMajor (true | false)

fillMinor (true | false) >

Αυτό το στοιχείο μπορεί να χρησιμοποιηθεί για τον καθορισμό διάφορων επιλογών διάταξης για στοιχεία που έχουν προστεθεί στις θέσεις trim.



<!ELEMENT location (order? , (bar | part | popup))>

<!ATTLIST location

mnemonic   CDATA #IMPLIED

imageStyle CDATA #IMPLIED>

Μια θέση στην οποία μπορεί να εμφανιστεί ένα menu, group, item ή widget. Αυτό το στοιχείο χρησιμοποιείται για τον έλεγχο πληροφοριών σχετικά με τη θέση.



<!ELEMENT bar EMPTY>

<!ATTLIST bar

type (menu|trim)

path CDATA #IMPLIED>

Ένα τελικό στοιχείο μέσα σε μια θέση. Αυτό μπορεί να είναι η γραμμή μενού ή η περιοχή αποκοπής. Εάν δεν έχει προσδιοριστεί, υποδεικνύεται η γραμμή μενού ανώτερου επιπέδου ή αποκοπή. Εάν έχει προσδιοριστεί με ένα στοιχείο part, τότε υποδεικνύεται το μενού ή αποκοπή αυτού του τμήματος.



<!ELEMENT class (parameter*)>

<!ATTLIST class

class CDATA #REQUIRED>

Ένα στοιχείο κλάσης που υποστηρίζει τη σύνταξη ανάλυσης της επέκτασης εκτελέσιμου αρχείου για τα στοιχεία widget και dynamic.



<!ELEMENT visibleWhen (not | or | and | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>

<!ATTLIST visibleWhen

checkEnabled (true | false) "false">

Ελέγχει την ορατότητα του δεδομένου στοιχείου.



<!ELEMENT part (popup | bar)>

<!ATTLIST part

id    CDATA #IMPLIED

class CDATA #IMPLIED>

Ένα στοιχείο μέσα σε μια θέση. Προσδιορίζει τη θέση που παραπέμπει σε ένα συγκεκριμένο τμήμα του πάγκου εργασίας. Αυτό μπορεί να είναι είτε μια προβολή είτε μια λειτουργία επεξεργασίας. Ο προσδιορισμός μπορεί να χρησιμοποιήσει το όνομα κλάσης του τμήματος (συμπεριλαμβανομένης της μεταβίβασης), ή μπορεί να παραπέμψει στην ταυτότητα για την προβολή τη λειτουργία επεξεργασίας.

Μόνο ένα από τα id και class μπορεί να οριστεί.



<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Μια παράμετρος επέκτασης εκτελέσιμου αρχείου ή εντολής -- ανάλογα με το πού εμφανίζεται στην επέκταση.



<!ELEMENT order EMPTY>

<!ATTLIST order

position   (start|end|before|after)

relativeTo CDATA #IMPLIED>

Ελέγχει τη θέση ενός μενού, ομάδας, στοιχείου ή οργάνου σε μια συγκεκριμένη τοποθεσία.



<!ELEMENT popup EMPTY>

<!ATTLIST popup

id   CDATA #IMPLIED

path CDATA #IMPLIED>

Τμήμα μιας θέσης. Υποδεικνύει ότι το μενού, η ομάδα, το στοιχείο ή το όργανο πρέπει να εμφανίζεται στο αναδυόμενο παράθυρο.



<!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 κατά την αποτίμηση της έκφρασης.



Ένας ορισμός βασικού μενού έχει την ακόλουθη μορφή.

<menu id=

"com.mycompany.myplugin.projection"

label=

"%Folding.label"

>

<location mnemonic=

"%Folding.label.mnemonic"

>

<part id=

"AntEditor"

>

<popup id=

"#RulerContext"

path=

"rest"

/>

</part>

</location>

</menu>

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

<menu id=

"com.mycompany.myplugin.textEditorMenu"

label=

"Text Commands"

>

<location mnemonic=

"X"

>

<part class=

"AbstractTextEditor"

>

<popup id=

"#RulerContext"

path=

"rest"

/>

</part>

</location>

</menu>

Είναι δυνατός ο συσχετισμός βοήθειας με ένα μενού.

<menu id=

"com.mycompany.myplugin.RunWithConfigurationAction"

label=

"Run With Configuration"

helpContextId=

"run_with_configuration_context"

>

<location>

<bar />

</location>

</menu>

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

<group id=

"com.mycompany.myplugin.stepGroup"

>

<location>

<bar path=

"org.eclipse.ui.run"

/>

</location>

</group>

<group id=

"com.mycompany.myplugin.stepIntoGroup"

separatorsVisible=

"false"

>

<location>

<bar path=

"org.eclipse.ui.run"

/>

</location>

</group>

Είναι δυνατή η τοποθέτηση μενού, ομάδων, στοιχείων και οργάνων σε περισσότερες από μια θέσεις.

<item id=

"com.mycompany.myplugin.ToggleStepFilters"

commandId=

"com.mycompany.myplugin.ToggleStepFilters"

>

<location mnemonic=

"%mnemonic"

>

<bar path=

"org.eclipse.ui.run/emptyStepGroup"

/>

</location>

<location>

<part id=

"org.eclipse.debug.ui.DebugView"

>

<bar type=

"trim"

path=

"renderGroup"

/>

</part>

</location>

<location mnemonic=

"%mnemonic"

>

<part id=

"org.eclipse.debug.ui.DebugView"

>

<popup path=

"renderGroup"

/>

</part>

</location>

</item>

Εάν το αναδυόμενο στοιχείο οριστεί χωρίς ταυτότητα και χωρίς στοιχείο γονικού τμήματος, τότε εφαρμόζεται σε οποιοδήποτε μενού περιβάλλοντος, το οποίο έχει καταχωρηθεί με τον πάγκο εργασίας. Κάτι τέτοιο είναι παρόμοιο με τη συμπεριφορά των συνεισφορών προγενέστερων αντικειμένων. Ομοίως, ένα αναδυόμενο στοιχείο ανώτερου επιπέδου με ταυτότητα θα επηρεάσει οποιοδήποτε μενού περιβάλλοντος, το οποίο έχει καταχωρηθεί με το δεδομένο όνομα .

<item id=

"com.mycompany.myplugin.ObjectContribution"

commandId=

"com.mycompany.myplugin.ObjectContribution"

>

<location>

<popup path=

"additions"

/>

</location>

</item>

Μπορεί να θέλετε να ελέγχετε την ορατότητα ενός στοιχείου. Παρόλο που συνήθως είναι προτιμητέα η διατήρηση της σταθερότητας στη διάταξη των μενού και γραμμών εργαλείων, ορισμένες φορές είναι επιθυμητή η απόκρυψη στοιχείων που δεν είναι άμεσα σχετικά. Αυτό συμβαίνει ιδιαίτερα σε μενού περιβάλλοντος, όπου ο χώρος είναι περιορισμένος. Σε αυτή την περίπτωση, θα ορίζατε ένα στοιχείο visibleWhen. Αυτό το στοιχείο είναι σχεδόν όμοιο με τα στοιχεία activeWhen και enabledWhen που ορίστηκαν στο σημείο επέκτασης ρουτινών χειρισμού.

<item id=

"com.mycompany.myplugin.ConvertToWatchExpression"

commandId=

"com.mycompany.myplugin.ConvertToWatchExpression"

>

<location mnemonic=

"%mnemonic"

>

<part id=

"org.eclipse.debug.ui.DebugView"

>

<popup path=

"additions"

/>

</part>

</location>

<visibleWhen>

<with variable=

"selection"

>

<iterate operator=

"and"

>

<not>

<instanceof value=

"IWatchExpression"

/>

</not>

<instanceof value=

"IExpression"

/>

</iterate>

</with>

</visibleWhen>

</item>

Η πιο συνηθισμένη περίπτωση είναι να γίνεται κάτι ορατό όταν η ρουτίνα χειρισμού του είναι ενεργοποιημένη. Εδώ υπάρχει ένας ιδιαίτερος χειρισμός σύνταξης. Υπάρχει ένα γνώρισμα checkEnabled στο στοιχείο visibleWhen.

<item id=

"com.mycompany.myplugin.compareWithPatch"

commandId=

"com.mycompany.myplugin.compareWithPatch"

>

<location mnemonic=

"%mnemonic"

>

<part id=

"MyPart"

>

<popup path=

"additions"

/>

</part>

</location>

<visibleWhen checkEnabled=

"true"

/>

</item>

Οποιοδήποτε στοιχείο συσχετίζεται με μια εντολή μπορεί να συμπεριλαμβάνει τιμές παραμέτρου. Εάν η παράμετρος της δεδομένης ταυτότητας δεν έχει οριστεί, τότε πρόκειται για σφάλμα. Εάν το στοιχείο δε διαθέτει εντολή, τότε πρόκειται επίσης για σφάλμα.

<item id=

"com.mycompany.myplugin.RunHistory"

commandId=

"com.mycompany.myplugin.RunHistory"

>

<location>

<bar path=

"org.eclipse.ui.run"

/>

</location>

<parameter name=

"index"

value=

"1"

/>

</item>

Eίναι επίσης δυνατός ο καθορισμός σχετικής σειράς. Αυτό γίνεται χρησιμοποιώντας το γνώρισμα order στο στοιχείο θέσης. Το γνώρισμα order δέχεται τις εξής τιμές: start (τοποθετήστε το στοιχείο στην αρχή της θέσης υποδοχής), end (τοποθετήστε το στοιχείο στο τέλος της θέσης υποδοχής), after (τοποθετήστε το αρχείο μετά το αδελφικό στοιχείο η ταυτότητα του οποίου συμφωνεί με το ref) και before (τοποθετήστε το στοιχείο πριν από το αδελφικό στοιχείο η ταυτότητα του οποίου συμφωνεί με το ref). Η σχετική σειρά μπορεί να εφαρμοστεί σε οποιοδήποτε είδος του στοιχείου μενού.

<item id=

"com.mycompany.myplugin.MyFirstItem"

commandId=

"com.mycompany.myplugin.MyFirstCommand"

>

<location>

<order position=

"start"

/>

<bar path=

"org.eclipse.ui.run"

/>

</location>

</item>

<item id=

"com.mycompany.myplugin.MySecondItem"

commandId=

"com.mycompany.myplugin.MySecondCommand"

>

<location>

<order position=

"after"

relativeTo=

"com.mycompany.myplugin.MyFirstItem"

/>

<bar path=

"org.eclipse.ui.run"

/>

</location>

</item>

Eάν απαιτείται άμεση πρόσβαση στα όργανα (π.χ. εμφάνιση ενός σύνθετου πλαισίου), μπορείτε να χρησιμοποιήσετε ένα στοιχείο widget. Δυστυχώς, αυτό σημαίνει ότι εάν ένα στοιχείο οργάνου γίνει ορατό στο περιβάλλον χρήστη, θα οδηγήσει σε φόρτωση της πρόσθετης λειτουργίας.

<widget id=

"com.mycompany.myplugin.MyComboBoxSimple"

class=

"com.mycompany.myplugin.MyComboBox"

>

<location>

<bar type=

"trim"

path=

"myGroup"

/>

</location>

</widget>

<widget id=

"com.mycompany.myplugin.MyComboBoxParameterized1"

class=

"com.mycompany.myplugin.MyComboBox:a,b,c"

>

<location>

<bar type=

"trim"

path=

"myGroup"

/>

</location>

</widget>

<widget id=

"com.mycompany.myplugin.MyComboBoxParameterized2"

>

<class class=

"com.mycompany.myplugin.MyComboBox"

>

<parameter name=

"list"

value=

"a,b,c"

/>

<parameter name=

"selected"

value=

"c"

/>

<parameter name=

"editable"

value=

"false"

/>

</class>

<location>

<bar type=

"trim"

path=

"myGroup"

/>

</location>

</widget>

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

Σημειώστε ότι οι 'ομάδες' αποκοπής μπορούν να επανατοποθετηθούν σε άλλες περιοχές αποκοπής. Tο relativeTo των πληροφοριών θέσης θα θεωρήσει ότι η ομάδα στην οποία γίνεται παραπομπή βρίσκεται στην προεπιλεγμένη θέση κατά τον καθορισμό της νέας θέσης αποκοπής. Σε γενικές γραμμές, αναμένεται ότι οι διεργασίες συνεισφοράς αυτού του είδους θα δημιουργήσουν τη δική τους ομάδα για να φιλοξενήσει το νέο όργανο, επιτρέποντας την επανατοποθέτηση του στοιχείου αποκοπής ανεξάρτητα από τα άλλα στοιχεία αποκοπής. Μία αξιοσημείωτη εξαίρεση σε αυτό είναι η ομάδα 'status'.

   

<extension point=

"org.eclipse.ui.menus"

>

<group id=

"TestTrimAPI.heapStatusGroup"

separatorsVisible=

"true"

>

<location>

<bar type=

"trim"

/>

<order position=

"after"

relativeTo=

"status"

/>

</location>

</group>

<widget class=

"HeapStatusWidget"

id=

"TestTrimAPI.HeapStatus"

>

<location>

<bar path=

"heapStatusGroup"

type=

"trim"

/>

</location>

<layout fillMajor=

"false"

fillMinor=

"true"

/>

</widget>

</extension>

Για να καταχωρήσετε ένα μενού περιβάλλοντος, χρησιμοποιήστε τις μεθόδους IWorkbenchPartSite.registerContextMenu.