Διακριτικά

org.eclipse.ui.decorators

Έκδοση 2.0

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

Η ενεργοποίηση ή/και η ορατότητα μιας ενέργειας μπορεί να οριστεί χρησιμοποιώντας τα στοιχεία enablement και visibility αντίστοιχα. Αυτά τα δύο στοιχεία περιέχουν μια λογική έκφραση που αποτιμάται για τον καθορισμό των στοιχείων enablement ή/και visibility.

Η σύνταξη είναι η ίδια για τα στοιχεία enablement και visibility. Και τα δύο περιέχουν ένα υποστοιχείο λογικής έκφρασης. Στην πιο απλή περίπτωση, θα πρόκειται για ένα στοιχείο objectClass, objectState, pluginState ή systemProperty. Στην πιο σύνθετη περίπτωση, είναι δυνατός ο συνδυασμός των στοιχείων and, or και not για τη διαμόρφωση μιας λογικής έκφρασης. Τόσο το στοιχείο and, όσο και το or πρέπει να περιέχουν 2 υποστοιχεία. Το στοιχείο not πρέπει να περιέχει μόνο 1 υποστοιχείο.

<!ELEMENT extension (decorator*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT decorator (description? , enablement?)>

<!ATTLIST decorator

id          CDATA #REQUIRED

label       CDATA #REQUIRED

class     CDATA #IMPLIED

objectClass CDATA #IMPLIED

adaptable   (true | false)

state       (true | false)

lightweight (true|false)

icon        CDATA #IMPLIED

location (TOP_LEFT|TOP_RIGHT|BOTTOM_LEFT|BOTTOM_RIGHT|UNDERLAY) >


<!ELEMENT description (#PCDATA)>

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



<!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 κάθε αντικειμένου της τρέχουσας επιλογής. Εάν κάθε αντικείμενο στην επιλογή έχει την καθορισμένη κατάσταση γνωρίσματος, η έκφραση αποτιμάται ως "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.



Ακολουθεί ένα παράδειγμα διακριτικών:

Ένα πλήρες διακριτικό. Ο προγραμματιστής πρόσθετης λειτουργίας πρέπει να χειριστεί τη δική τους υποστήριξη εικόνας.

 

<extension point=

"org.eclipse.ui.decorators"

>

<decorator id=

"com.xyz.decorator"

label=

"XYZ Decorator"

state=

"true"

class=

"com.xyz.DecoratorContributor"

>

<enablement>

<objectClass name=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</decorator>

</extension>

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

 

<extension point=

"org.eclipse.ui.decorators"

>

<decorator id=

"com.xyz.lightweight.decorator"

label=

"XYZ Lightweight Decorator"

state=

"false"

class=

"com.xyz.LightweightDecoratorContributor"

lightweight=

"true"

>

<enablement>

<objectClass name=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</decorator>

</extension>

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

 

<extension point=

"org.eclipse.ui.decorators"

>

<decorator id=

"com.xyz.lightweight.declarative.decorator"

label=

"XYZ Lightweight Declarative Decorator"

state=

"false"

lightweight=

"true"

icon=

"icons/full/declarative.gif"

location=

"TOP_LEFT"

>

<enablement>

<objectClass name=

"org.eclipse.core.resources.IResource"

/>

</enablement>

</decorator>

</extension>

Η τιμή του γνωρίσματος class πρέπει να είναι το πλήρες όνομα μιας κλάσης που υλοποιεί org.eclipse.jface.viewers.ILabelDecorator (εάν το "lightweight" είναι false) ή org.eclipse.jface.viewers.ILightweightLabelDecorator. Αυτή η κλάση φορτώνεται όσο το δυνατόν αργότερα για την αποφυγή φόρτωσης ολόκληρης της πρόσθετης λειτουργίας προτού αυτή καταστεί αναγκαία. Τα δηλωτικά διακριτικά δεν συνεπάγονται ενεργοποίηση πρόσθετης λειτουργίας και πρέπει να χρησιμοποιούνται όποτε είναι δυνατό. Τα διακριτικά μη μειωμένων λειτουργιών θα καταργηθούν στο τέλος.

Οι πρόσθετες λειτουργίες μπορούν να χρησιμοποιήσουν αυτό το σημείο επέκτασης για την προσθήκη νέων διακριτικών προς εφαρμογή σε προβολές που χρησιμοποιούν τη λειτουργία διαχείρισης διακριτικών ως το διακριτικό ετικέτας τους. Για τη χρήση της λειτουργίας διαχείρισης, χρησιμοποιήστε το αποτέλεσμα της IViewPart.getDecoratorManager() ως το διακριτικό για μια χρήση της DecoratingLabelProvider. Επί του παρόντος, αυτό χρησιμοποιείται από τη λειτουργία πλοήγησης πόρων.