Wenn Sie die universelle Startseite (Universal Welcome) wie bereits erläutert starten, können Sie feststellen, dass der Inhaltsbereich in allen Seiten der zweiten Ebene, deren Verzweigung von der Stammseite ausgeht, leer ist. Dies liegt daran, dass eine gemeinsam genutzte Startseite keinen eigenen Inhalt hat. Diese Bereiche werden unter Verwendung von Erweiterungen für die Einführungskonfiguration gefüllt.
Normalerweise werden Konfigurationserweiterungen ergänzt, indem der vollständige Pfad des Ankerelements in der Zielseite angegeben wird. Diese Methode wird zwar noch unterstützt, hat sich jedoch als etwas anfällig erwiesen. Wie bereits erläutert, ist die Angabe der exakten Position, an der die Erweiterung am Ziel endet, für Erweiterungsautoren eine verfrühte Aktion. Es kann sein, dass sie nicht alle Produkte kennen, in denen ihre Erweiterung letztendlich verwendet wird. Daher wissen sie auch nicht, wo sie in Bezug auf den Fokus des jeweiligen Produkts angezeigt werden soll. Bei der universellen Startseite "Universal Welcome" bleibt diese Entscheidung den Produktautoren überlassen. Erweiterungsautoren haben nun die Möglichkeit, einen unvollständigen Zielpfad anzugeben, dessen leere Bereiche durch die Produktautoren ausgefüllt werden können.
Konfigurationserweiterungen, die eine späte Auflösung des Zielpfads nutzen sollen, müssen drei Bedingungen erfüllen:
Die Fähigkeit, die Zielpfade von Erweiterungen aufzulösen, ist eine neue Funktion der Einführungsunterstützung in Eclipse 3.2. Sie wurde hinzugefügt, um die Leistungsstärke der Komponente "Universal Welcome" zu vergrößern. Die Funktion selbst ist insofern generisch, als sie auch in anderen Startseitenimplementierungen (nicht nur der universellen) verwendet werden kann. In Eclipse 3.2 kann die Komponente "CustomizableIntroPart" eine Klasse für eine optionale Anpassungsfunktion der Einführung akzeptieren, die sich ganz unterschiedlich auf ihr Verhalten auswirken kann. Die Anpassungsfunktion hat unter anderem die Aufgabe, die späte Auflösung des Zielpfads vorzunehmen. Was die Produktautoren betrifft, sind dies natürlich alles lediglich Implementierungsdetails, da bei der Implementierung einer universellen Startseite die späte Auflösung des Zielpfads unter Verwendung der bereits angesprochenen Datendatei erfolgt. Diese Datei wird unter Verwendung der Benutzervorgabe "org.eclipse.ui.intro/INTRO_DATA" gespeichert.
Die Datei "INTRO_DATA" verwendet das XML-Format und ermöglicht es Autoren, den Inhalt der Hauptseiten für die Startseite zu steuern. Autoren von Ergänzungen für die Startseite müssen in den Zielpfaden lediglich die Seiten-ID angeben. Alles weitere ist in dieser Datei definiert. Die Datei enthält eine Folge von Elementen "page", die jeweils eine Anzahl von Elementen "group" enthalten. Elemente "group" geben seitenbezogene Pfade an und enthalten Ergänzungen für untergeordnete Elemente. Mit Ergänzungselementen werden zwei Aspekte angegeben:
<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>
Im obigen Beispiel werden die Ergänzungen "foo1", "bar" und "foo2" in der linken Spalte und die Ergänzungen
"foo3", "foo4" und "foo5" in der rechten Spalte der Seite angezeigt. Die relative Reihenfolge der Ergänzungen wird ebenfalls aus dieser Datei extrahiert. Außerdem werden Ergänzungen
basierend auf dem Attribut importance
klassifiziert, für das die
Werte high, medium, low und
callout gültig sind (Standardwert ist low). Jeder Wert hat eine entsprechende Darstellung in der Seite. Die ersten drei sind lediglich unterschiedliche Wertigkeitsebenen, die vom Produktautor bestimmt werden (bitte beachten Sie, dass eine Ergänzung in zwei separaten Produkten hinsichtlich ihrer Wertigkeit unterschiedlich klassifiziert sein kann). Der letzte Wert (callout) wird verwendet, um Ergänzungen herauszustellen, die einer ganz anderen Gattung angehören (beispielsweise Ergänzungen, die Links zu Videos oder Animationen bieten).
Nicht aufgelistete Ergänzungen werden nach den aufgelisteten Ergänzungen mit einer geringen Wertigkeit (low) angehängt. Dies ist wichtig für Ergänzungen, die nach Auslieferung des Produkts hinzugefügt werden, da sie weiterhin angezeigt werden müssen.
Für das Projekt irrelevante Ergänzungen können ausgeblendet werden, indem sie explizit als untergeordnete Elemente des Elements "hidden" aufgeführt werden.
Eine Erweiterung, die in einer der Stammseiten bereitgestellt wird, kann selbst Anker enthalten, damit andere Elemente Inhalt hinzufügen können. Dies verursacht ein Problem, weil der letztendlich aufgelöste Pfad des Inhalts in der Erweiterung im Vorfeld nicht bekannt ist. Aus diesem Grund müssen Zielpfade für Inhalt in Erweiterungen, bei denen die späte Pfadauflösung verwendet wird, selbst auch aufgelöst werden:
<?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>
Um eine Ergänzung im Anker "additions" der obigen Erweiterung bereitzustellen, müsste der folgende Pfad verwendet werden: "overview/@extra/extra-group/additions". Das Segment "@extra" wird durch den aufgelösten Pfad der Erweiterung mit der ID "extra" auf der Seite "overview" ersetzt. Falls die Erweiterung beispielsweise in das linke obere Segment der Seite gestellt wird, lautet der aufgelöste Pfad "overview/page-content/upper-left/extra-group/additions".