Při spouštění modulu plug-in Universal Welcome, jak je zobrazeno výše, si všimněte, že všechny stránky druhé úrovně, které rozvětvují kořenovou stránku, mají prázdnou obsahovou oblast. To proto, že sdílený modul Vítejte nemá svůj vlastní obsah. Tyto oblasti jsou naplňovány pomocí rozšíření částí Intro config.
Tradičním způsobem přispívání rozšíření config je uvedení úplné cesty k prvku anchor na cílové stránce. Tato metoda je stále podporována, ale ukázalo se, že je poněkud křehká. Jak bylo uvedeno předtím, přesné určení cílového místa rozšíření je pro autory rozšíření předčasné. Autoři nemusí znát všechny produkty, v nichž jejich rozšíření skončí, a proto neví, kde by se měla podle zaměření každého produktu zobrazit. Modul plug-in Universal Welcome ponechává toto rozhodnutí na autorech produktu. Autoři rozšíření mají nyní volbu určení neúplné cílové cesty, jejíž prázdná pole může doplnit autor produktu.
Rozšíření config, která chtějí používat pozdní rozlišení cílové cesty, musí splnit tři podmínky:
Schopnost rozlišovat cílové cesty rozšíření je novou funkcí podpory části Intro v Eclipse 3.2, která byla přidána, aby modul plug-in Universal Welcome byl výkonnější. Samotná funkce je generická v tom, že může být použita v jiných implementacích části Vítejte, tedy ne jen v univerzální implementaci. V Eclipse 3.2 může CustomizableIntroPart přijmout volitelnou třídu správce vlastního nastavení části Intro, která může ovlivnit chování několika způsoby. Jednou z rolí správce vlastního nastavení je provádět pozdní rozlišení cílové cesty. Pokud jde o autory produktu, je to vše jen detail implementace, protože v univerzální implementaci části Vítejte je pozdní rozlišení cílové cesty prováděno pomocí dříve zmíněného datového souboru. Tento soubor je uložen pomocí předvolby org.eclipse.ui.intro/INTRO_DATA.
Soubor 'INTRO_DATA' používá formát XML a umožňuje autorům produktu ovládat obsah hlavních uvítacích stránek. Autoři příspěvku části Vítejte musí ve svých cílových cestách uvést pouze ID stránky. Zbytek je definován v tomto souboru. Soubor obsahuje sekvenci prvků 'page', z nichž každý obsahuje několik prvků 'group'. Prvky skupin uvádějí relativní cestu vzhledem ke stránce a mají příspěvky pro podřízené prvky. Prvky příspěvků se používají za účelem uvedení dvou aspektů:
<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>
Ve výše uvedeném příkladě budou příspěvky 'foo1', 'bar' a foo2' v levém a 'foo3', 'foo4' a 'foo5' v pravém sloupci na stránce. Z tohoto souboru je rovněž extrahováno relativní pořadí příspěvků. Kromě toho jsou příspěvky klasifikovány na základě atributu importance
, který může mít čtyři platné hodnoty: high, medium, low a callout, výchozí hodnota je low. Každá hodnota má odpovídající prezentaci, která zajistí, že na stránce vystoupí. První tři jsou jednoduše různými úrovněmi důležitosti podle autora produktu (uvědomte si, že stejný příspěvek může obdržet ve dvou samostatných produktech různou klasifikaci důležitosti). Poslední (callout) se používá k vytřídění příspěvků, které jsou zcela odlišné povahy (například příspěvek, který nabízí odkazy na filmy nebo animaci).
Příspěvky, které nejsou uvedeny, jsou připojeny za uvedené příspěvky a je jim přiřazena hodnota nízké důležitosti. To je důležité pro příspěvky přidané po dodání produktu - i ty se musí zobrazit.
Příspěvky, které nejsou příslušné projektu, lze skrýt jejich výslovným vypsáním jako podřízené prvky prvku 'hidden'.
Samotné rozšíření přidané do jedné z kořenových stránek může obsahovat kotvy, které umožní ostatním přidat obsah. To způsobuje problém, protože konečná rozlišená cesta k obsahu v rozšíření není předem známa. Z tohoto důvodu musí být rozlišeny samotné cílové cesty pro obsah v rozšířeních, která používají pozdní rozlišení cesty:
<?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="Odkaz na další přehled" url="http://org.eclipse.ui.intro/showPage?id=extraOverview" id="extra-overview"> <text>Ukázka další stránky přehledu třetí úrovně</text> </link> <anchor id="additions"/> </group> </extensionContent> </introContent>
Abychom přispěli do kotvy 'additions' ve výše uvedeném rozšíření, měli bychom používat následující cestu: "overview/@extra/extra-group/additions". Segment '@extra' bude nahrazen rozlišenou cestou rozšíření s ID 'extra' na stránce 'overview'. Například je-li rozšíření umístěno v levém horním segmentu stránky, rozlišená cesta bude: "overview/page-content/upper-left/extra-group/additions".