navigatorContent

org.eclipse.ui.navigator.navigatorContent

3.2

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

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

<!ELEMENT extension ((navigatorContent? | actionProvider? | commonWizard? | commonFilter?))>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT navigatorContent ((enablement | (triggerPoints , possibleChildren)) , actionProvider* , commonSorter* , override? , dropAssistant* , commonWizard*)>

<!ATTLIST navigatorContent

id                CDATA #REQUIRED

name              CDATA #REQUIRED

priority          (lowest|lower|low|normal|high|higher|highest)

contentProvider   CDATA #REQUIRED

icon              CDATA #IMPLIED

activeByDefault   (true | false)

providesSaveables (true | false)

labelProvider     CDATA #REQUIRED>

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

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



<!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

Η έκφραση ενεργοποίησης επιτρέπει στους πελάτες να ορίζουν την ίδια έκφραση για triggerPoints και possibleChildren.

Στην περίπτωση του actionProvider, οι πελάτες πρέπει να προσδιορίσουν μια έκφραση που θα υποδείξει στο πλαίσιο όταν πρέπει να γίνει κλήση του org.eclipse.ui.navigator.CommonActionProvider. Λόγω των συνεισφορών στο IActionBars, οι πελάτες πρέπει να καλούνται κάθε φορά που επιλέγεται ένα αντικείμενο, για το οποίο ενδιαφέρονται. Επομένως, πρέπει να αποφασίσουν με σύνεση πότε πρέπει να ενεργοποιηθεί η επέκτασή τους.



<!ELEMENT triggerPoints (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

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



<!ELEMENT possibleChildren (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

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



<!ELEMENT actionProvider (enablement?)>

<!ATTLIST actionProvider

class     CDATA #REQUIRED

id        CDATA #IMPLIED

dependsOn CDATA #IMPLIED

overrides CDATA #IMPLIED>

Παρέχει το όνομα μιας κλάσης που υλοποιεί το org.eclipse.ui.navigator.CommonActionProvider. Ο παροχέας ενεργειών έχει τη δυνατότητα συνεισφοράς στο μενού περιβάλλοντος και στις ενέργειες μεταβλητής εμβέλειας που καθορίζονται στο IActionBars για την προβολή που διαθέτει τη λειτουργία πλοήγησης. Οι πελάτες μπορούν επίσης να συνεισφέρουν απευθείας στο μενού προβολής μέσω του μενού προβολής IActionBars.

Ένα actionProvider ανωτέρου επιπέδου είναι ορατό σε μια αφηρημένη λειτουργία προβολής, εάν υπάρχει viewerActionBinding για αυτό το actionProvider. Για παροχείς ενεργειών που είναι ένθετοι σε ένα στοιχείο navigatorContent, η ορατότητα θα ελέγχεται από την ταυτότητα της ταυτότητας επέκτασης του περιεχομένου λειτουργίας πλοήγησης. Οι παροχείς θυγατρικών ενεργειών θα επιλέγονται αυτόματα από τα αντίστοιχα viewerContentBinding. Ανατρέξτε στο org.eclipse.ui.navigator.viewer για περισσότερες πληροφορίες σχετικά με τους δεσμούς ορατότητας.

Οι πελάτες μπορεί να παρέχουν actionProvider στο κεντρικό στοιχείο extention (ομότιμο με το navigatorContent) ώστε να ελέγχουν καλύτερα την ενεργοποίησή τους και τους δεσμούς της λειτουργίας προβολής (βλ. viewerActionBinding).

Για κεντρικά actionProviders χωρίς ταυτότητα, η ταυτότητα έχει ως προεπιλογή το "org.eclipse.ui.navigator.actionProvider.X". Για έχουν α actionProvider τη δυνατότητα συνεισφοράς μενού ή γραμμών ενεργειών μιας λειτουργίας προβολής, πρέπει να οριστεί ένα viewerActionBinding (ως τμήμα του σημείου επέκτασης org.eclipse.ui.navigator.viewer), το οποίο δηλώνει έναν δεσμό ανάμεσα στη συγκεκριμένη λειτουργία προβολής και την προεπιλεγμένη ταυτότητα ("org.eclipse.ui.navigator.actionProvider.*"). Ανατρέξτε στην τεκμηρίωση για το viewerActionBinding στην τεκμηρίωση σχήματος του org.eclipse.ui.navigator.viewer για περισσότερες πληροφορίες.



<!ELEMENT commonWizard (enablement)>

<!ATTLIST commonWizard

type                  (import|export|new)

wizardId              CDATA #REQUIRED

menuGroupId           CDATA #IMPLIED

associatedExtensionId CDATA #IMPLIED>

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



<!ELEMENT commonFilter (filterExpression?)>

<!ATTLIST commonFilter

id              CDATA #REQUIRED

name            CDATA #REQUIRED

description     CDATA #IMPLIED

class           CDATA #IMPLIED

activeByDefault (true | false) >

Καθορίζει ένα φίλτρο που μπορεί να συσχετιστεί με μια συγκεκριμένη κοινή λειτουργία προβολής. Τα κοινά φίλτρα έχουν δεσμό με μια λειτουργία προβολής όπως οι επεκτάσεις περιεχομένου χρησιμοποιώντας org.eclipse.ui.navigator.viewer/viewerContentBinding.



<!ELEMENT filterExpression (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

Μια προαιρετική έκφραση πυρήνα του Eclipse που καθορίζει τι πρέπει να αποκρύπτει το φίλτρο από μια συγκεκριμένη προβολή.

Για παράδειγμα, οι πελάτες μπορεί να αποφασίσουν να αποκρύψουν όλους τους πόρους, το όνομα των οποίων διαθέτει ένα ιδιαίτερο μοτίβο (όπως "*.acme"). Όταν το φίλτρο είναι ενεργό (έχει ενεργοποιηθεί από προεπιλογή ή απο το χρήστη), τότε όλοι οι πόροι που τελειώνουν σε "acme" θα αποκρύπτονται από το χρήστη.

Οι πελάτες μπορούν να χρησιμοποιήσουν είτε το filterExpression είτε το γνώρισμα "class", αλλά όχι και τα δύο.



<!ELEMENT commonSorter (parentExpression)>

<!ATTLIST commonSorter

id    CDATA #REQUIRED

class CDATA #REQUIRED>

Ένα commonSorter δηλώνει μια υποκλάση του org.eclipse.jface.viewers.ViewerSorter που χρησιμοποιείται για την ταξινόμηση θυγατρικών στοιχείων στη διακλάδωση. Το ένθετο parentExpression περιγράφει πότε πρέπει να χρησιμοποιείται το commonSorter. Εάν ένα στοιχείο συμφωνεί με το parentExpression, τότε τα θυγατρικά στοιχεία του θα ταξινομηθούν σύμφωνα με αυτό το commonSorter.



<!ELEMENT parentExpression (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

Ένα parentExpression χρησιμοποιείται από το commonSorter για να καθορίσει πότε μπορεί να εφαρμοστεί. Εάν το parentExpression για ένα commonSorter συμφωνεί με ένα δεδομένοι στοιχείο, τότε αυτό το commonSorter θα χρησιμοποιηθεί για την ταξινόμηση των θυγατρικών στοιχείων αυτού του στοιχείου (όπως επιστρέφεται από τον παροχέα περιεχομένου της υπηρεσίας περιεχομένου).



<!ELEMENT override EMPTY>

<!ATTLIST override

suppressedExtensionId CDATA #REQUIRED

policy                (InvokeOnlyIfSuppressedExtAlsoVisibleAndActive|InvokeAlwaysRegardlessOfSuppressedExt) "InvokeAlwaysRegardlessOfSuppressedExt">

Όταν τόσο η έκφραση triggerPoints της κρυφής επέκτασης όσο και η δηλωμένη επέκταση ενεργοποιούνται σε ένα δεδομένο στοιχείο, τότε θα κληθεί η δηλωμένη επέκταση, όχι όμως και η κρυφή. Οι πελάτες που καθορίζουν ένα στοιχείο override πρέπει επίσης να παρέχουν έναν παροχέα περιεχομένου που υλοποιεί το org.eclipse.ui.navigator.IPipelinedTreeContentProvider, το οποίο παρέχει μεθόδους εντοπισμού αιτήσεων για θυγατρικά στοιχεία, γονικά στοιχεία και άμεσες ενημερώσεις στη λειτουργία προβολής.



<!ELEMENT dropAssistant (possibleDropTargets)>

<!ATTLIST dropAssistant

id    CDATA #REQUIRED

class CDATA #REQUIRED>

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

Ένα dropAssistant θα καλείται κάθε φορά που τα στοιχεία που εναποτίθενται συμφωνούν με την έκφραση possibleChildren της επέκτασης navigatorContent και ο προορισμός εναπόθεσης της λειτουργίας περιγράφεται από την έκφραση possibleDropTargets του στοιχείου dropAssistant.

Μια επέκταση μπορεί να έχει περισσότερους από έναν προσαρμογείς εναπόθεσης με αμοιβαία αποκλειστικές εκφράσεις possibleDropTargets. Στον πρώτο προσαρμογέας εναπόθεσης που βρέθηκε ότι συμφωνεί με τον δεδομένο προορισμό εναπόθεσης και ότι επιστρέφει μια κατάσταση OK για το CommonDropAdapterAssistant.validateDrop(...) θα δοθεί η δυνατότητα χειρισμού της εναπόθεσης.



<!ELEMENT possibleDropTargets (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

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



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




Προσθήκη περιεχομένου

Το παράδειγμα που ακολουθεί περιγράφει μια επέκταση περιεχομένου που παρέχει περιεχόμενο πόρου. Η έκφραση triggerPoints καθορίζει πότε καλείται αρχικά αυτή η επέκταση. Εάν ένα viewerContentBinding συμφωνεί με αυτή την επέκταση και η τιμή του γνωρίσματος "isRoot" έχει οριστεί σε true, τότε η επέκταση θα χρησιμοποιηθεί ανεξάρτητα από το εάν το κεντρικό στοιχείο συμφωνεί με την έκφραση triggerPoints.

<extension point=

"org.eclipse.ui.navigator.navigatorContent"

>

<navigatorContent name=

"%resource.extension.name"

priority=

"low"

icon=

"icons/full/eview16/resource_persp.gif"

activeByDefault=

"true"

contentProvider=

"org.eclipse.ui.navigator.resources.internal.workbench.ResourceExtensionContentProvider"

labelProvider=

"org.eclipse.ui.navigator.resources.internal.workbench.ResourceExtensionLabelProvider"

sorter=

"org.eclipse.ui.navigator.resources.internal.workbench.ResourceSorter"

id=

"org.eclipse.ui.navigator.resourceContent"

>

<triggerPoints>

<or>

<instanceof value=

"org.eclipse.core.resources.IWorkspaceRoot"

/>

<instanceof value=

"org.eclipse.core.resources.IProject"

/>

<instanceof value=

"org.eclipse.core.resources.IFolder"

/>

</or>

</triggerPoints>

<possibleChildren>

<or>

<instanceof value=

"org.eclipse.core.resources.IWorkspaceRoot"

/>

<instanceof value=

"org.eclipse.core.resources.IProject"

/>

<instanceof value=

"org.eclipse.core.resources.IResource"

/>

<instanceof value=

"org.eclipse.core.resources.IFolder"

/>

<instanceof value=

"org.eclipse.core.resources.IFile"

/>

</or>

</possibleChildren>

</navigatorContent>

</extension>

Προσθήκη ενεργειών

Οι πελάτες μπορούν να χρησιμοποιήσουν συνεισφορές αντικειμένων ή λειτουργιών προβολής (βλ. org.eclipse.ui.popupMenus) για να παρέχουν ενέργειες για την προβολή τους. Ορισμένες φορές, οι πελάτες απαιτούν μεγαλύτερο βαθμό ευελιξίας από όσο επιτρέπουν αυτές οι προσεγγίσεις, και για το λόγο αυτό το πλαίσιο κοινής λειτουργίας πλοήγησης υποστηρίζει την προσθήκη παροχέων ενεργειών. Οι "Παροχείς ενεργειών" μετατρέπουν το org.eclipse.ui.actions.ActionGroup σε υποκλάση και έχουν τη δυνατότητα συμπλήρωσης των γραμμών ενεργειών και των μενού βάσει των διαφορετικών συμβάντων (επιλογή και πάτημα του δεξιού κουμπιού του ποντικού αντίστοιχα).

Οι πελάτες μπορεί να συσχετίσουν έναν ή περισσότερους παροχείς ενεργειών με μια συγκεκριμένη επέκταση περιεχομένου ή να δηλώσουν τους παροχείς ενεργειών ως συνεισφορές ανωτέρου επιπέδου, οι οποίες δε συσχετίζονται με καμία συγκεκριμένη επέκταση περιεχομένου. Οι παροχείς ενεργειών ανωτέρου επιπέδου πρέπει να συσχετίζονται με μια συγκεκριμένη χρήση της λειτουργίας προβολής χρησιμοποιώντας το σημείο επέκτασης org.eclipse.ui.navigator.viewer/viewerActionBinding. Οι ένθετοι παροχείς ενεργειών συνδέονται αυτόματα με μια λειτουργία προβολής ανάλογα με το εάν η επέκταση περιεχομένου τους συνδέεται επίσης με τη λειτουργία προβολής (βλ. org.eclipse.ui.navigator/viewerContentBinding).

Το παράδειγμα που ακολουθεί παρουσιάζει και τις δύο προσεγγίσεις. Το "TestNestedActionProvider" θα έχει τη δυνατότητα να συνεισφέρει στο μενού και το org.eclipse.ui.IActionBars μόνο εάν η επέκταση "org.eclipse.ui.tests.navigator.testContent" είναι ορατή και ενεργή. Εάν ο χρήστης απενεργοποιήσει την επέκταση κειμένου από το πλαίσιο διαλόγου "Διαθέσιμες προσαρμογές", τότε ο ένθετος παροχέας ενεργειών δεν θα διαθέτει πλέον τη δυνατότητα να συνεισφέρει.

<extension point=

"org.eclipse.ui.navigator.navigatorContent"

>

<navigatorContent id=

"org.eclipse.ui.tests.navigator.testContent"

name=

"%test.navigator.extension"

contentProvider=

"org.eclipse.ui.tests.navigator.extension.TestContentProvider"

labelProvider=

"org.eclipse.ui.tests.navigator.extension.TestLabelProvider"

activeByDefault=

"true"

priority=

"normal"

>

<triggerPoints>

<instanceof value=

"org.eclipse.core.resources.IProject"

/>

</triggerPoints>

<actionProvider class=

"org.eclipse.ui.tests.navigator.extension.TestNestedActionProvider"

id=

"org.eclipse.ui.tests.navigator.extension.TestNestedActionProvider"

>

<enablement>

<instanceof value=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</actionProvider>

</navigatorContent>

<actionProvider class=

"org.eclipse.ui.navigator.resources.internal.actions.NewActionProvider"

id=

"org.eclipse.ui.navigator.resources.NewActions"

>

<enablement>

<or>

<adapt type=

"org.eclipse.core.resources.IFile"

/>

<adapt type=

"org.eclipse.core.resources.IFolder"

/>

<adapt type=

"org.eclipse.core.resources.IProject"

/>

<adapt type=

"org.eclipse.core.resources.IWorkspaceRoot"

/>

</or>

</enablement>

</actionProvider>

</extension>

Οι πελάτες μπορούν να ορίζουν φίλτρα χρησιμοποιώντας της υποκλάσεις του org.eclipse.jface.viewers.ViewerFilter ή τις εκφράσεις πυρήνα του Eclipse. Το παράδειγμα που ακολουθεί παρουσιάζει και τις δύο τεχνικές. Οι πελάτες μπορούν να χρησιμοποιήσουν μια από τις δύο επιλογές. Οι επεκτάσεις που ορίζουν και τις δύο ως σφάλμα, έχουν ως αποτέλεσμα να λαμβάνεται υπόψη μόνο το φίλτρο έκφρασης πυρήνα. Τα πεδία ονόματος και περιγραφής είναι μεταφράσιμα, και πρέπει να προσαρμόζουν τοπικά τις σειρές χαρακτήρων σε πραγματικά περιβάλλοντα.

<extension point=

"org.eclipse.ui.navigator.navigatorContent"

>

<commonFilter class=

"org.eclipse.ui.tests.navigator.extension.TestItemsThatEndIn3"

description=

"Hide TestItem objects that end in the number &quot;3&quot;"

id=

"org.eclipse.ui.tests.navigator.filters.TestItemsThatEndWith3"

name=

"TestItems that end with &quot;3&quot;"

activeByDefault=

"true"

/>

<commonFilter description=

"Hides all instances of Test Item"

id=

"org.eclipse.ui.tests.navigator.filters.AllTestItems"

name=

"A TestItem Exp Filter (should be sorted alphab..)"

>

<filterExpression>

<instanceof value=

"org.eclipse.ui.tests.navigator.extension.TestExtensionTreeData"

/>

</filterExpression>

</commonFilter>

Καθορίζεται ένας κοινός τρόπος ταξινόμησης για ένα σύνολο θυγατρικών στοιχείων που βάσει του γονικού τους στοιχείου. Η κλάση του τρόπου ταξινόμησης πρέπει να μετατρέψει το org.eclipse.jface.viewers.ViewerSorter σε υποκλάση.


<extension point=

"org.eclipse.ui.navigator.navigatorContent"

>

<commonSorter class=

"org.eclipse.ui.navigator.resources.internal.workbench.ResourceExtensionSorter"

id=

"org.eclipse.ui.navigator.resources.sorters.defaultSorter"

>

<parentExpression>

<or>

<instanceof value=

"org.eclipse.core.resources.IWorkspaceRoot"

/>

<instanceof value=

"org.eclipse.core.resources.IProject"

/>

<instanceof value=

"org.eclipse.core.resources.IResource"

/>

<instanceof value=

"org.eclipse.core.resources.IFolder"

/>

<instanceof value=

"org.eclipse.core.resources.IFile"

/>

</or>

</parentExpression>

</commonSorter>

</extension>

Το παράδειγμα που ακολουθεί παρουσιάζει τον τρόπο προσθήκης ενεργειών συντόμευσης οδηγού για "Nέος φάκελος" και "Nέο αρχείο", που ενεργοποιούνται στις συγκεκριμένες υποκλάσεις του org.eclipse.core.resources.IResource. Οι πελάτες μπορούν να χρησιμοποιήσουν οποιαδήποτε τμήματα του org.eclipse.core.expressions χρειάζονται για να περιγράψουν πότε θα είναι διαθέσιμες οι επιλογές μενού. Η ταυτότητα οδηγού που περιγράφεται παρακάτω πρέπει να αντιστοιχεί σε ένα από τα σημεία επέκτασης του org.eclipse.ui.xxxWizards.

Για πελάτες που δημιουργούν τις δικές τους λειτουργίες προβολής ή τμήματα προβολής, βεβαιωθείτε ότι χρησιμοποιείτε το org.eclipse.ui.navigator.WizardActionGroup για τη σωστή συμπλήρωση του μενού. Ανατρέξτε σε αυτή την κλάση για περισσότερες πληροφορίες σχετικά με τη χρήση αυτής της λειτουργίας.


<extension point=

"org.eclipse.ui.navigator.navigatorContent"

>

<commonWizard type=

"new"

wizardId=

"org.eclipse.ui.wizards.new.folder"

>

<enablement>

<or>

<adapt type=

"org.eclipse.core.resources.IFile"

/>

<adapt type=

"org.eclipse.core.resources.IFolder"

/>

<adapt type=

"org.eclipse.core.resources.IProject"

/>

<adapt type=

"org.eclipse.core.resources.IWorkspaceRoot"

/>

</or>

</enablement>

</commonWizard>

<commonWizard type=

"new"

wizardId=

"org.eclipse.ui.wizards.new.file"

>

<enablement>

<or>

<adapt type=

"org.eclipse.core.resources.IFile"

/>

<adapt type=

"org.eclipse.core.resources.IFolder"

/>

<adapt type=

"org.eclipse.core.resources.IProject"

/>

<adapt type=

"org.eclipse.core.resources.IWorkspaceRoot"

/>

</or>

</enablement>

</commonWizard>

</extension>