Το στοιχείο viewer καθορίζει τη ρύθμιση για μια κοινή λειτουργία προβολής. Η επέκταση μπορεί να παρέχει μια προσαρμοσμένη ταυτότητα αναδυόμενου μενού, και να αντικαθιστά είτε η λειτουργία προβολής παρέχει διασύνδεση με την υποστήριξη της λειτουργίας επεξεργασίας, πλαίσιο διαλόγου φίλτρου, ή/και ένα πλαίσιο διαλόγου "Διαθέσιμες προσαρμογές". Επιπρόσθετα, τα ένθετα στοιχεία ρύθμισης ελέγχουν πλήρως τη δομή και συμπεριφορά του αναδυόμενου μενού περιβάλλοντος.
Το viewerContentBinding συνδέει καθορισμένες επεκτάσεις περιεχομένου
(μέσω του σημείου επέκτασης navigatorContent) με λειτουργίες προβολής
(που έχουν καθοριστεί μέσω του σημείου επέκτασης org.eclipse.ui.views). Οποιαδήποτε
επέκταση περιεχομένου συνδέεται με μια λειτουργία προβολής περιγράφεται ως
ορατή. Μια υπηρεσία περιεχομένου (org.eclipse.ui.navigator.INavigatorContentService
)
δεν θα επιστρέψει τις επεκτάσεις που δεν είναι ορατές στην ταυτότητα της δικής
της λειτουργίας προβολής.
<!ELEMENT extension (viewer* , viewerContentBinding* , viewerActionBinding* , dragAssistant)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED>
<!ELEMENT viewer (popupMenu? , options?)>
<!ATTLIST viewer
viewerId CDATA #REQUIRED
popupMenuId CDATA #IMPLIED>
Παρέχει τις βασικές ρυθμίσεις για τη δημιουργία των χαρακτηριστικών μιας λειτουργίας προβολής. Οι πελάτες πρέπει επίσης να καθορίσουν μια επέκταση org.eclipse.ui.views για να δημιουργήσουν το τμήμα προβολής.
<!ELEMENT viewerContentBinding (includes? , excludes?)>
<!ATTLIST viewerContentBinding
viewerId CDATA #REQUIRED>
Οι πελάτες πρέπει να καθορίσουν ένα ή περισσότερα στοιχεία
viwerContentBinding για να περιγράψουν ποιες επεκτάσεις
περιεχομένου και κοινά φίλτρα είναι ορατά στη λειτουργία προβολής. Μία
επέκταση περιεχομένου ή κοινό φίλτρο είναι ορατά εάν η ταυτότητα της
επέκτασης περιεχομένου ή του κοινού φίλτρου συμφωνεί με μία πρόταση
includes σε ένα viewerContentBinding και δεν αποκλείεται από μια
πρόταση excludes. Εάν μια επέκταση περιεχομένου ή κοινό φίλτρο δεν
είναι ορατά σε μια λειτουργία προβολής, τότε μια υπηρεσία περιεχομένου
δεν θα ζητήσει ποτέ από την επέκταση περιεχόμενο για αυτή τη λειτουργία
προβολής ούτε θα παρουσιαστεί στο χρήση στο πλαίσιο διαλόγου διαθέσιμων
φίλτρων.
Οι πελάτες μπορούν να καθορίσουν ένα στοιχείο includes για να επιλέξουν
ποιες επεκτάσεις είναι ορατές στη λειτουργία προβολής, και ομοίως ένα
στοιχείο excludes για επεκτάσεις που δεν πρέπει να καθίστανται
ορατές στη λειτουργία προβολής. Οι πελάτες μπορούν να καθορίσουν
περαιτέρω τις επεκτάσεις στις οποίες πρέπει να υποβληθούν ερωτήματα για
κεντρικά στοιχεία (μέσω ITreeContentProvider.getElements()) από το γνώρισμα "isRoot". Εάν
σε ένα ή περισσότερα στοιχεία contentExtension έχει οριστεί το "isRoot"
σε true εντός της πρότασης includes, θα υποβληθούν ερωτήματα μόνο σε
αυτές τις επεκτάσεις για κεντρικά στοιχεία. Το γνώρισμα "isRoot" δεν
επηρεάζει τις εξαιρέσεις.
Μια λειτουργία προβολής μπορεί να έχει περισσότερα από ένα
viewerContentBindings καθορισμένα, και οι προτάσεις τους includes/excludes
θα συγκεντρωθούν για να παράγουν την τελική συμπεριφορά.
org.eclipse.ui.navigator.CommonNavigator
.<!ELEMENT viewerActionBinding (includes? , excludes?)>
<!ATTLIST viewerActionBinding
viewerId CDATA #REQUIRED>
Οι πελάτες πρέπει να καθορίσουν ποιοι παροχείς ενεργειών είναι ορατοί στη
λειτουργία προβολής τους.
Οι πελάτες μπορούν να καθορίσουν ένα στοιχείο includes για να επιλέξουν
ποιες επεκτάσεις είναι ορατές στη λειτουργία προβολής, και ομοίως ένα
στοιχείο excludes για επεκτάσεις που δεν πρέπει να καθίστανται
ορατές στη λειτουργία προβολής.
Μια λειτουργία προβολής μπορεί να έχει περισσότερα από ένα
viewerActionBinding καθορισμένα, και οι προτάσεις τους
includes/excludes θα συγκεντρωθούν για να παράγουν την
τελική συμπεριφορά.
Για ορισμούς actionProvider που δεν είναι ένθετοι σε έναν
ορισμό navigatorContent, οι πελάτες μπορούν να καθορίσουν μια
προσαρμοσμένη ταυτότητα. Εάν οι πελάτες δεν καθορίσουν ταυτότητα, η
ταυτότητα έχει ως προεπιλογή το "org.eclipse.ui.navigator.actionProvider.X". Οι
πελάτες που θέλουν να διαλέξουν actionProvider χωρίς συγκεκριμένη
ταυτότητα, πρέπει να καθορίσουν ένα viewerActionBinding για την
προεπιλεγμένη ταυτότητα. Για την πραγματοποίηση της παραπάνω λειτουργίας,
ανατρέξτε στην ενότητα παραδειγμάτων.
org.eclipse.ui.navigator.CommonNavigator
.<!ELEMENT includes ((contentExtension+) | (actionExtension+))>
Καθορίζουν ένα σύνολο μοτίβων που πρέπει να περιλαμβάνονται κατά την αναζήτηση επεκτάσεων περιεχομένου για τη λειτουργία προβολής που συμφωνεί με το στοιχείο "viewerId". Όταν υπάρχουν προτάσεις includes και excludes, θα δοθεί προτεραιότητα στην πρόταση includes.
<!ELEMENT excludes ((contentExtension+) | (actionExtension+))>
Καθορίζουν ένα σύνολο μοτίβων που πρέπει να εξαιρούνται κατά την αναζήτηση επεκτάσεων περιεχομένου για τη λειτουργία προβολής που συμφωνεί με το στοιχείο "viewerId". Όταν υπάρχουν προτάσεις includes και excludes, θα δοθεί προτεραιότητα στην πρόταση includes.
<!ELEMENT contentExtension EMPTY>
<!ATTLIST contentExtension
pattern CDATA #REQUIRED
isRoot (true | false) >
Υποδεικνύει την ταυτότητα (ή αντίστοιχο μοτίβο) μιας επέκτασης περιεχομένου
στην οποία πρέπει να υποβληθεί ερώτημα από το
ITreeContentProvider.getElements()
ή το ITreeContentProvider.getChildren()
για τη ρίζα της προβολής λειτουργίας ή ενός κοινού φίλτρου που πρέπει να είναι
διαθέσιμο στο χρήστη στο πλαίσιο διαλόγου "Διαθέσιμα φίλτρα".
Οι πελάτες μπορούν να καθορίσουν το "isRoot" για να επιλέξουν κεντρικές
επεκτάσεις για την αντικατάσταση των επεκτάσεων που θα έπρεπε αλλιώς να
ενεργοποιηθούν για το στοιχείο εισόδου της λειτουργίας προβολής (βάσει της
αντίστοιχης έκφρασης triggerPoints για το στοιχείο εισόδου της
λειτουργίας προβολής).
Για περισσότερες πληροφορίες, ανατρέξτε στο viewerContentBinding.
Τα μοτίβα είναι κανονικές εκφράσεις που αντιστοιχούν σε μοναδικές ταυτότητες. Για
περισσότερες λεπτομέρειες, παρακαλώ ανατρέξτε στην τεκμηρίωση της πλατφόρμας Java(tm) για το java.util.regex.Pattern
.
<!ELEMENT actionExtension EMPTY>
<!ATTLIST actionExtension
pattern CDATA #REQUIRED>
Υποδεικνύει την επέκταση ενεργειών στην οποία πρέπει να δοθεί η
δυνατότητα συνεισφοράς στο μενού περιβάλλοντος και τις γραμμές ενεργειών.
Για περισσότερες πληροφορίες, ανατρέξτε στο viewerActionBinding.
Τα μοτίβα είναι κανονικές εκφράσεις που αντιστοιχούν σε μοναδικές ταυτότητες.
Για περισσότερες λεπτομέρειες, παρακαλώ ανατρέξτε στην τεκμηρίωση της
πλατφόρμας Java(tm) για το java.util.regex.Pattern
.
<!ELEMENT popupMenu (insertionPoint*)>
<!ATTLIST popupMenu
id CDATA #IMPLIED
allowsPlatformContributions (true | false) >
Ένα στοιχείο popupMenu μπορεί να οριστεί μόνο εάν δεν έχει καθοριστεί το γνώρισμα
"popupMenuId" του στοιχείου viewer.
Το στοιχείο popupMenu επιτρέπει την περαιτέρω προσαρμογή του μενού
περιβάλλοντος που συσχετίζεται με τη λειτουργία προβολής. Για να εφαρμοστούν οι
επιλογές σωστά, πρέπει μια χρήση της λειτουργίας προβολής να αναθέσει σε ένα
org.eclipse.ui.navigator.NavigatorActionService
, το οποίο
συμπεριφέρεται ως ένα κανονικό org.eclipse.ui.ActionGroup
. Ανατρέξτε
στην τεκμηρίωση της κλάσης API για περισσότερες πληροφορίες σχετικά με την
αξιοποίηση αυτών των λειτουργιών. Οι πελάτες που χρησιμοποιούν μια χρήση του
org.eclipse.ui.navigator.CommonNavigator
δε χρειάζεται να κάνουν
περαιτέρω εργασίες.
Ένα popupMenu δηλώνει ένα ή περισσότερα insertionPoints που θα
χρησιμοποιηθούν από τις διεργασίες συνεισφοράς για να οργανώσουν τις
συνεισφορές τους σε μια κατανοητή, πιο φιλική προς το χρήστη, συμβατή λίστα.
Εάν οι πελάτες καθορίσουν μόνο ένα γνώρισμα "popupMenuId" του στοιχείου
viewer, τότε το σύνολο των insertionPoints που
χρησιμοποιούνται από το μενού περιβάλλοντος θα έχουν ως προεπιλογή της
ακόλουθη λίστα με τη δεδομένη σειρά:
"group.new" separator="true" "group.goto" "group.open" separator="true" "group.openWith" "group.show" separator="true" "group.edit" separator="true" "group.reorganize" "group.port" "group.generate" separator="true" "group.search" separator="true" "group.build" separator="true" "additions" separator="true" "group.properties" separator="true"
org.eclipse.ui.navigator.ICommonMenuConstants
.
org.eclipse.ui.navigator.CommonActionProviders
(βλ.
org.eclipse.ui.navigator.navigatorContent/actionProvider και org.eclipse.ui.navigator.navigatorContent/navigatorContent/actionProvider).<!ELEMENT insertionPoint EMPTY>
<!ATTLIST insertionPoint
name CDATA #REQUIRED
separator (true | false) >
Καθορίζει ένα σημείο εισαγωγής για το μενού περιβάλλοντος. Περιλαμβάνει το όνομα του σημείου που θα παραπέμπονται οι πελάτες, και καθορίζει εάν το σημείο εισαγωγής πρέπει να εμφανίζεται ως διαχωριστικό ή ως δείκτης ομάδας.
org.eclipse.ui.navigator.CommonActionProvider
είτε δηλωτικών
συνεισφορών μέσω του σημείου επέκτασης org.eclipse.ui.popupMenus.<!ELEMENT options (property+)>
Παρέχουν επιλογές στη λειτουργία προβολής για την προσαρμογή της
παρουσίασής του στο χρήστη. Ανατρέξτε στο
org.eclipse.ui.navigator.INavigatorViewerDescriptor
για τις
διαθέσιμες ιδιότητες.
<!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #REQUIRED
value CDATA #REQUIRED>
Παρέχουν ένα ζεύγος όνομα=τιμή. Η τιμή θα παρέχεται ως έχει στη λειτουργία
προβολής (επομένως οι κενές σειρές χαρακτήρων θα διαδίδονται ως κενές σειρές
χαρακτήρων). Ανατρέξτε στο
org.eclipse.ui.navigator.INavigatorViewerDescriptor
για τις
διαθέσιμες ιδιότητες και τις περιγραφές τους.
<!ELEMENT dragAssistant EMPTY>
<!ATTLIST dragAssistant
class CDATA #REQUIRED
viewerId CDATA #REQUIRED>
Μία βοήθεια τραβήγματος και εναπόθεσης παρέχει μια ρουτίνα
περιορισμένων
δυνατοτήτων για την παροχή επιπρόσθετων ειδών μεταφοράς για τον
ορισμό των δεδομένων τραβήγματος. Αυτό το στοιχείο δεν απαιτείται επειδή το
βασικό org.eclipse.ui.navigator.CommonViewer παρέχει ένα είδος org.eclipse.jface.util.LocalSelectionTransfer.
Οι πελάτες πρέπει απλά να καθορίσουν αυτή την επέκταση σε πρόσθετες
λειτουργίες περιορισμένων δυνατοτήτων με ρηχές διακλαδώσεις εξαρτήσεων. Οι
βοήθειες τραβήγματος πρέπει να φορτώνονται πριν από τη δημιουργία της
λειτουργίας προβολής, το οποίο θα ενισχύσει τη φόρτωση των πρόσθετων λειτουργιών που έχουν
επηρεαστεί.
org.eclipse.ui.navigator.CommonDragAdapterAssistant
.Το παράδειγμα που ακολουθεί ρυθμίζει την ταυτότητα αναδυόμενου μενού για μια λειτουργία προβολής.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewer id=
"org.eclipse.testViewer"
popupMenuId=
"org.eclipse.testViewer#PopupMenu"
/>
</extension>
Εφόσον το θυγατρικό στοιχείο popupMenu της λειτουργίας προβολής δε χρησιμοποιείται στο παραπάνω παράδειγμα, θα χρησιμοποιηθεί το προεπιλεγμένο σύνολο του insertionPoints. Αυτό το σύνολο καθορίζεται ως εξής. Για περισσότερες πληροφορίες, ανατρέξτε στο στοιχείο popupMenu.
"group.new" separator="true" "group.goto" "group.open" separator="true" "group.openWith" "group.show" separator="true" "group.edit" separator="true" "group.reorganize" "group.port" "group.generate" separator="true" "group.search" separator="true" "group.build" separator="true" "additions" separator="true" "group.properties" separator="true"
Το παράδειγμα που ακολουθεί παρουσιάζει τη ρύθμιση μιας λειτουργίας προβολής
που δηλώνει τα προσαρμοσμένα popupMenu/insertionPoints, αλλά περιορίζει
τις συνεισφορές αντικειμένων και λειτουργιών προβολής με το γνώρισμα
"allowsPlatformContributions". Οι πελάτες μπορούν να συνεισφέρουν μόνο στο
καθορισμένο μενού μέσω των
org.eclipse.ui.navigator.CommonActionProvider
που δηλώνονται για
τη λειτουργία προβολής (είτε ανωτέρου επιπέδου είτε συσχετισμένη με επεκτάσεις
περιεχομένου).
Σημειώστε ότι το γνώρισμα "popupMenuId" δεν καθορίζεται ταυτόχρονα με το στοιχείο popupMenu. Μόνο ένα από τα δύο, όχι και τα δύο, αποτελεί έγκυρη ρύθμιση.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewer viewerId=
"org.eclipse.ui.navigator.resourceContent"
>
<popupMenu allowsPlatformContributions=
"false"
id=
"org.eclipse.ui.navigator.resourceContent#PopupMenu"
>
<insertionPoint name=
"group.new"
/>
<insertionPoint name=
"group.open"
separator=
"true"
/>
<insertionPoint name=
"group.openWith"
/>
<insertionPoint name=
"group.port"
separator=
"true"
/>
<insertionPoint name=
"additions"
separator=
"true"
/>
<insertionPoint name=
"group.properties"
separator=
"true"
/>
</popupMenu>
</viewer>
<viewerContentBinding viewerId=
"org.eclipse.ui.navigator.resourceContent"
>
<includes>
<contentExtension pattern=
"org.eclipse.ui.navigator.resourceContent"
/>
</includes>
</viewerContentBinding>
</extension>
To παράδειγμα που ακολουθεί δηλώνει ότι μια επέκταση περιεχομένου (ταυτότητα: "org.eclipse.ui.navigator.resourceContent") συνδέεται με μια λειτουργία προβολής που συμφωνεί με την ταυτότητα "org.eclipse.ui.navigator.resourceContent". (Σε αυτό το παράδειγμα, η επέκταση περιεχομένου συμφωνεί με τις ταυτότητες της λειτουργίας προβολής, αυτό όμως δεν είναι το απαιτούμενο.) Περαιτέρω, οποιαδήποτε επέκταση με μια ταυτότητα που ξεκινάει με "org.eclipse.ui.navigator.tests."θα αγνοηθεί.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewerContentBinding viewerId=
"org.eclipse.ui.navigator.resourceContent"
>
<includes>
<contentExtension pattern=
"org.eclipse.ui.navigator.resourceContent"
/>
</includes>
<excludes>
<contentExtension pattern=
"org.eclipse.ui.navigator.tests.*"
/>
</excludes>
</viewerContentBinding>
</extension>
Το παράδειγμα που ακολουθεί δηλώνει ένα viewerActionBinding για όλα τα actionProvider (που δεν είναι ένθετα σε μια επέκταση navigatorContent) που συμφωνούν με την κανονική έκφραση "org.acme.actions.*" και όχι την "org.acme.actions.tests.*". Αυτή η έκφραση θα κάνει όλα τα actionProvider η ταυτότητα των οποίων ξεκινάει με "org.acme.actions." και όχι με "org.acme.actions.tests." ορατά στη λειτουργία προβολής με την ταυτότητα "org.acme.viewer". Φυσικά, τα viewerActionBindings εφαρμόζονται μόνο σε στοιχεία actionProvider που δεν είναι ένθετα σε ένα στοιχείο navigatorContent. Η ορατότητα των ένθετων στοιχείων actionProvider ελέγχεται από τα viewerContentBindings ως προς το περικλείον στοιχείο navigatorContent.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewerActionBinding viewerId=
"org.acme.viewer"
>
<includes>
<actionExtension pattern=
"org.acme.actions.*"
/>
</includes>
<excludes>
<actionExtension pattern=
"org.acme.actions.tests.*"
/>
</excludes>
</viewerActionBinding>
</extension>
Το παράδειγμα που ακολουθεί κάνει οποιοδήποτε actionProvider χωρίς γνώρισμα "id" ορατό στη λειτουργία προβολής "org.acme.viewer". Τα actionProvider χωρίς γνώρισμα "id" έχουν μια προεπιλεγμένη ταυτότητα του "org.eclipse.ui.navigator.actionProvider.X". Φυσικά, τα viewerActionBindings εφαρμόζονται μόνο σε στοιχεία actionProvider που δεν είναι ένθετα σε ένα στοιχείο navigatorContent. Η ορατότητα των ένθετων στοιχείων actionProvider ελέγχεται από τα viewerContentBindings ως προς το περικλείον στοιχείο navigatorContent.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewerActionBinding viewerId=
"org.acme.viewer"
>
<includes>
<actionExtension pattern=
"org.eclipse.ui.navigator.actionProvider.*"
/>
</includes>
</viewerActionBinding>
</extension>
Το παράδειγμα που ακολουθεί παρουσιάζει τις τυπικές ιδιότητες που διατίθενται στη λειτουργία προβολής.
<extension point=
"org.eclipse.ui.navigator.viewer"
>
<viewer popupMenuId=
"org.eclipse.ui.tests.navigator.TestView#PopupMenu"
viewerId=
"org.eclipse.ui.tests.navigator.TestView"
>
<options>
<!-- Hide the
"Available Extensions"
tab in the
"Available Customizations"
dialog (available from the
"Filters"
action -->
<property name=
"org.eclipse.ui.navigator.hideAvailableExtensionsTab"
value=
"true"
/>
<!-- Hide the
"Available Customizations"
dialog completely. This includes hiding the filters and the available content extensions. -->
<property name=
"org.eclipse.ui.navigator.hideAvailableCustomizationsDialog"
value=
"true"
/>
<!-- Hide the
"Link with Editor"
action from the toolbar of the viewer -->
<property name=
"org.eclipse.ui.navigator.hideLinkWithEditorAction"
value=
"true"
/>
<!-- Hide the
"Collapse All"
action from the toolbar of the viewer -->
<property name=
"org.eclipse.ui.navigator.hideCollapseAllAction"
value=
"true"
/>
</options>
</viewer>
</extension>
Copyright (c) 2002, 2005 IBM Corporation και άλλων.
Με την επιφύλαξη παντός δικαιώματος.Αυτό το πρόγραμμα και τα
συνοδευτικά του υλικά διατίθενται βάσει των όρων της κοινής άδειας
χρήσης Eclipse Public License v1.0 που συνοδεύει αυτή τη διανομή και
διατίθεται στην ακόλουθη διεύθυνση:
http://www.eclipse.org/legal/epl-v10.html.