Η ενεργοποίηση ή/και η ορατότητα μιας ενέργειας μπορεί να οριστεί χρησιμοποιώντας τα στοιχεία 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) >
IDecoratorManager#update()
.<!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>
Copyright (c) 2002, 2004 IBM Corporation και άλλων.
Με την επιφύλαξη παντός δικαιώματος. Αυτό το πρόγραμμα και τα
συνοδευτικά του υλικά διατίθενται βάσει των όρων της κοινής άδειας
χρήσης Eclipse Public License v1.0 που συνοδεύει αυτή τη διανομή και
διατίθεται στην ακόλουθη διεύθυνση:
http://www.eclipse.org/legal/epl-v10.html.