Ao ativar as Boas-vindas universais configuradas conforme mostrado anteriormente, você notará que toda a página de segundo nível com ramificações na página raiz têm uma área de conteúdo vazia. Isso se deve ao fato de que as Boas-vindas compartilhadas não têm conteúdo próprio. Essas áreas são preenchidas utilizando as extensões de configuração de introdução.
A maneira tradicional de contribuir com extensões de configuração é especificar um caminho completo do elemento de âncora na página de destino. Esse método ainda é suportado, mas comprovou-se ser um tanto frágil. Conforme mencionado antes, a especificação de um local exato onde a extensão terminará no destino é prematura para os criadores de extensão. Eles podem não conhecer todos os produtos nos quais a extensão terminará e portanto não saber onde eles deverão aparecer, de acordo com o foco de cada produto. Nas Boas-vindas universais, essa decisão é deixada para os criadores de produto. Criadores de extensão agora têm a opção de especificar um caminho de destino incompleto, permitindo que o criador do produto preencha os espaços em branco
As extensões de configuração que desejam utilizar a última resolução de caminho de destino precisam atender a três condições:
A capacidade para resolver caminhos de destino de extensão é um novo recurso de suporte de introdução no Eclipse 3.2 incluído para tornar mais eficaz as Boas-vindas universais. O recurso em si é genérico no sentido de que pode ser utilizado em outras implementações de Boas-vindas, não apenas na universal. No Eclipse 3.2, CustomizableIntroPart pode aceitar uma classe de customizador de introdução opcional que pode afetar seu comportamento de diversas maneiras. Uma das funções do customizador é executar a última resolução de caminho de destino. Certamente que, até onde interessa aos criadores de produto, tudo isso é apenas detalhe de implementação porque, na implementação das Boas-vindas universais, a última resolução de caminho de destino é executada utilizando o arquivo de dados mencionado anteriormente. Esse arquivo é armazenado utilizando a preferência org.eclipse.ui.intro/INTRO_DATA.
O arquivo 'INTRO_DATA' utiliza o formato XML e permite aos criadores de produto controlar o conteúdo das páginas de boas-vindas principais. Os autores de contribuição de boas-vindas são solicitados a especificar apenas o Id da página em seus caminhos de destino. O restante é definido nesse arquivo. O arquivo contém uma seqüência de elementos 'page', cada um contendo vários elementos 'group'. Os elementos de grupo especificam o caminho relativo à página e têm contribuições de filhos. Os elementos de contribuição são utilizados para especificar dois aspectos:
<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>
No exemplo anterior, as contribuições 'foo1', 'bar' e foo2' ficarão na esquerda; e
'foo3', 'foo4' e 'foo5', na coluna direita da página. A ordem relativa das contribuições
também é extraída desse arquivo. Além disso, as contribuições são classificadas com base
no atributo importance
que pode ter quatro valores válidos: high,
medium, low e callout, com low como o padrão. Cada valor
tem apresentação correspondente que o torna destaque na página. Os três primeiros são
simplesmente níveis diferentes de importância, de acordo com o criador do produto
(observe que a mesma contribuição pode receber uma classificação de importância diferente
em dois produtos separados). O último (callout) é utilizado para escolher as
contribuições que são de natureza completamente diferente (por exemplo, uma contribuição
que oferece links para vídeos ou animação).
As contribuições não listadas são anexadas após as listadas e designado um valor de baixa importância. Isso é importante para contribuições incluídas após o envio do produto - elas ainda precisam ser mostradas.
As contribuições não relevantes ao projeto podem ser ocultadas listando-as explicitamente como filhas do elemento 'hidden'.
Uma extensão contribuída em uma das páginas raiz pode ela mesma conter âncoras, sustentando outras para inclusão de conteúdo. Isso causa um problema, já que o caminho resolvido final do conteúdo na extensão não é conhecido antecipadamente. Por essa razão, os caminhos de destino para conteúdo em extensões que utilizam a última resolução de caminho devem ser resolvidos sozinhos:
<?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="Link de Visão Geral Extra" url="http://org.eclipse.ui.intro/showPage?id=extraOverview" id="extra-overview"> <text>Mostrando a página extra de terceiro nível para visão geral</text> </link> <anchor id="additions"/> </group> </extensionContent> </introContent>
Para contribuir nas adições ('additions') de âncora, na extensão anterior, será utilizado o seguinte caminho: "overview/@extra/extra-group/additions". O segmento '@extra' será substituído pelo caminho resolvido da extensão com o id 'extra' na página 'overview'. Por exemplo, se a extensão for colocada no segmento superior esquerdo da página, o caminho resolvido será: "overview/page-content/upper-left/extra-group/additions".