Επέκταση της γενικής εισαγωγής

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

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

Οι επεκτάσεις ρυθμίσεων που θέλουν να χρησιμοποιήσουν αργότερη ανάλυση διαδρομής προορισμού, πρέπει να πληρούν τρεις προϋποθέσεις:

  1. Η επέκταση ρύθμισης πρέπει να καθορίζει μια μοναδική ταυτότητα χρησιμοποιώντας το γνώρισμα 'id'. Οι επεκτάσεις χωρίς ταυτότητα θα παραβλεφθούν. Αυτό είναι σημαντικό επειδή η ταυτότητα θα χρησιμοποιηθεί για να παραπέμψει στην επέκταση από τον συντάκτη προϊόντος.
  2. Η επέκταση ρύθμισης πρέπει να καθορίζει ένα όνομα φιλικό προς το χρήστη χρησιμοποιώντας το γνώρισμα 'name'. Αυτό είναι σημαντικό αν χρησιμοποιηθεί η σελίδα προτίμησης προσαρμογής, επειδή οι επεκτάσεις θα εμφανιστούν στο UI.
  3. Η διαδρομή προορισμού πρέπει να έχει την ακόλουθη μορφή: "page_id/@" όπου 'page_id' είναι η ταυτότητα της σελίδας προορισμού. Όταν εντοπιστεί ένα '/@' στη διαδρομή προορισμού, θα πραγματοποιηθεί προσπάθεια δυναμικής ανάλυσης της διαδρομής σε αναμενόμενη πλήρη μορφή.

Η ικανότητα ανάλυσης των διαδρομών προορισμού επεκτάσεων είναι μια νέα λειτουργία υποστήριξης εισαγωγής του Eclipse 3.2, η οποία προστέθηκε για να ενισχυθεί η γενική σελίδα υποδοχής. Η λειτουργία είναι γενική στο ότι μπορεί να χρησιμοποιηθεί σε άλλες υλοποιήσεις της σελίδας υποδοχής, όχι μόνο στη γενική. Στο Eclipse 3.2, το CustomizableIntroPart μπορεί να δεχθεί μια προαιρετική κλάση προσαρμογής εισαγωγής που μπορεί να επηρεάσει τη συμπεριφορά του με διάφορους τρόπους. Ένας από τους ρόλους της λειτουργίας προσαρμογής είναι η εκτέλεση αργότερης ανάλυσης διαδρομής προορισμού. Φυσικά, όσον αφορά στους συντάκτες προϊόντος, αυτό είναι απλά μια λεπτομέρεια υλοποίησης καθώς στην υλοποίηση της γενικής σελίδας υποδοχής, η αργότερη ανάλυση διαδρομής προορισμού εκτελείται με τη χρήση του αρχείου δεδομένων που προαναφέρθηκε. Αυτό το αρχείο αποθηκεύεται χρησιμοποιώντας την προτίμηση org.eclipse.ui.intro/INTRO_DATA.

Το αρχείο 'INTRO_DATA' χρησιμοποιεί μορφή XML και επιτρέπει τους συντάκτες προϊόντος να ελέγχουν το περιεχόμενο των κύριων σελίδων υποδοχής. Οι συντάκτες συνεισφοράς υποδοχής απαιτείται να καθορίσουν μόνο μια ταυτότητα σελίδας στις διαδρομές προορισμού. Τα υπόλοιπα καθορίζονται σε αυτό το αρχείο. Το αρχείο περιέχει μια ακολουθία στοιχείων 'page', το κάθε ένα από τα οποία περιέχει έναν αριθμό στοιχείων 'group'. Τα στοιχεία group καθορίζουν διαδρομή σχετική με σελίδα και έχουν συνεισφορές για θυγατρικά στοιχεία. Τα στοιχεία συνεισφοράς χρησιμοποιούνται για τον καθορισμό δύο πτυχών:

   <extensions>
      <page id="overview">
         <group path="page-content/top-left">
            <extension id="foo1" importance="high"/>
            <extension id="bar"  importance="high"/>
            <extension id="foo2" importance="medium"/>
    </group>
         <group path="page-content/top-right">
            <extension id="foo3" importance="low"/>
            <extension id="foo4" importance="low"/>
            <extension id="foo5" importance="callout"/>
    </group>
         <hidden>
            <extension id="foo6"/>
            <extension id="foo7"/>
         </hidden>
         </page>
      <page id="whatsnew">
      ...
         </page>
   </extensions>

Στο παραπάνω παράδειγμα, οι συνεισφορές ‘foo1', 'bar' και foo2' θα βρίσκονται στην αριστερή στήλη, και οι συνεισφορές 'foo3', 'foo4' και 'foo5' στη δεξιά στήλη της σελίδας. Η σχετική σειρά των συνεισφορών εξάγεται επίσης από αυτό το αρχείο. Επιπλέον, οι συνεισφορές κατηγοριοποιούνται βάσει του γνωρίσματος importance που μπορεί να έχει τέσσερις έγκυρες τιμές: υψηλή, μέση, χαμηλή και επεξήγηση, με προεπιλεγμένη την τιμή χαμηλή. Κάθε τιμή έχει την αντίστοιχη παρουσίαση που την κάνει να ξεχωρίζει στη σελίδα. Οι πρώτες τρεις τιμές αντιστοιχούν απλά σε διαφορετικά επίπεδα σπουδαιότητας σύμφωνα με τον συντάκτη προϊόντος (σημειώστε ότι η ίδια συνεισφορά μπορεί να λάβει μια διαφορετική κατηγορία σπουδαιότητας σε δύο διαφορετικά προϊόντα). Η τελευταία τιμή (επεξήγηση) χρησιμοποιείται για τη διάκριση συνεισφορών που είναι εντελώς διαφορετικές (για παράδειγμα, μια συνεισφορά που παρέχει διασυνδέσεις σε βίντεο ή κινούμενα γραφικά).

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

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

Συνεισφορά σε επεκτάσεις

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

<?xml version="1.0" encoding="utf-8" ?>
<introContent>
   <extensionContent id="extra" name="Extra" alt-style="css/swt.properties" style="css/overview.css" path="overview/@">
      <group id="extra-group" style-id="content-group">
         <link label="Extra Overview link" url="http://org.eclipse.ui.intro/showPage?id=extraOverview" 
					  id="extra-overview">
      	    <text>Showing the third-level extra page for overview</text>

        </link>
         <anchor id="additions"/>
    </group>
	</extensionContent>
</introContent>

Για να γίνει συνεισφορά στο σημείο αγκύρωσης 'additions' στην παραπάνω επέκταση, πρέπει να χρησιμοποιήσουμε την ακόλουθη διαδρομή: "overview/@extra/extra-group/additions". Το τμήμα '@extra' θα αντικατασταθεί, με την αναλυμένη διαδρομή επέκτασης, με την ταυτότητα 'extra' στη σελίδα 'προεπισκόπηση'. Για παράδειγμα, εάν η επέκταση βρίσκεται στο επάνω αριστερό τμήμα της σελίδας, η διαδρομή θα είναι η εξής: "overview/page-content/upper-left/extra-group/additions".