Σελίδες ιδιοτήτων

org.eclipse.ui.propertyPages

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

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

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

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

<!ELEMENT extension (page*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT page (filter* , keywordReference* , enabledWhen?)>

<!ATTLIST page

id          CDATA #REQUIRED

name        CDATA #REQUIRED

icon        CDATA #IMPLIED

objectClass CDATA #IMPLIED

class       CDATA #REQUIRED

nameFilter  CDATA #IMPLIED

adaptable   (true | false)

category    CDATA #IMPLIED>


<!ELEMENT filter EMPTY>

<!ATTLIST filter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Αυτό το στοιχείο χρησιμοποιείται για την αποτίμηση γνωρίσματος state κάθε αντικειμένου της τρέχουσας επιλογής. Αντιστοίχιση γίνεται μόνο αν κάθε αντικείμενο στην επιλογή έχει την καθορισμένη κατάσταση γνωρίσματος. Κάθε αντικείμενο στην επιλογή πρέπει να υλοποιεί ή να προσαρμόζεται στη διεπαφή org.eclipse.ui.IActionFilter.



<!ELEMENT keywordReference EMPTY>

<!ATTLIST keywordReference

id CDATA #IMPLIED>

Παραπομπή από σελίδα ιδιοτήτων σε λέξι-κλειδί. Ανατρέξτε στο σημείο επέκτασης για τις λέξεις-κλειδιά.



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



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



Ακολουθεί ένα παράδειγμα του ορισμού σελίδας ιδιοτήτων:

   

<extension point=

"org.eclipse.ui.propertyPages"

>

<page id=

"com.xyz.projectPage"

name=

"XYZ Java Properties"

objectClass=

"org.eclipse.core.resources.IFile"

class=

"com.xyz.ppages.JavaPropertyPage"

nameFilter=

"*.java"

>

<filter name=

"readOnly"

value=

"true"

/>

</page>

</extension>

Το γνώρισμα class πρέπει να να καθορίζει ένα πλήρες όνομα της κλάσης που υλοποιεί το org.eclipse.ui.IWorkbenchPropertyPage.

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