Descrevendo e Compactando o Conteúdo do Infopop

Os infopops são descritos associando-se o id de contexto declarado no código da UI a uma descrição e lista de links a tópicos relacionados na ajuda online.  Estas associações são feitas em um arquivo XML.  Você pode criar vários arquivos XML contendo associações de infopop de cada plug-in.  A descrição e os links de cada id de contexto são feitos nos elementos de <contexto> no arquivo XML.  Cada elemento de contexto pode ter um elemento de <descrição> opcional que é utilizado para descrever o objeto da UI e vários elementos de <tópico> que estabelecem link com a documentação online.

<contexts>
	<context id="panic_button">
		<description>Este é o botão de pânico.</description>
		<topic href="tasks/pushing_the_panic_button.htm" label="Pressionando o botão de pânico"/>
		<topic href="reference/panic_button.htm" label="Referência do Botão de Pânico"/>
	</context>
	...
</contexts>

Uma vez que os contextos estão descritos no arquivo (ou arquivos) XML, você está pronto para referir-se aos arquivos de contexto no manifest de seu plug-in.  Observe que o id de contexto não está completo acima.  Isso é permitido, contanto que o arquivo de contexto receba contribuição no manifest do plug-in que definiu o id de contexto.  Em outras palavras, o id de contexto é resolvido com o id do plug-in que contribuiu com o arquivo XML.  

Um plug-in contribui com arquivos de contexto utilizando o ponto de extensão org.eclipse.help.contexts.  

   <extension point="org.eclipse.help.contexts">
      <contexts name="myInfopops.xml"  />
   </extension>

É possível fazer referência a arquivos de contexto de outros plug-ins incluindo-se o atributo plugin.  Isso permite agrupar toda a documentação, incluindo infopops, em um plug-in, e referir-se a ele a partir do plug-in do código da UI ou de algum outro plug-in relacionado.

   <extension point="org.eclipse.help.contexts">
      <contexts name="myInfopops.xml" plugin="com.example.helpExample"  />
   </extension>

Como você pode ver, há bastante flexibilidade na organização dos infopops em um ou mais arquivos contidos em um ou mais plug-ins.  A principal preocupação é que os ids de contexto nos arquivos sejam resolvidos corretamente.  Se você não especificar completamente um id de contexto, deverá contribuir com os arquivos XML de contexto no plug-in que declarou os ids de contexto.  Se utilizar ids de contexto completos no arquivo XML de contexto, terá flexibilidade completa na localização dos arquivos XML e qual plug-in contribuirá com os contextos.

Infopops de Vários Plug-ins

Outro nível de flexibilidade é a capacidade de contribuir com infopops para o mesmo id de contexto a partir de plug-ins diferentes.  Isto será útil, por exemplo, se houver conjuntos de plug-ins de documentação diferentes que possam ou não ser instalados em uma configuração do usuário.  Isso permite que cada plug-in de documentação declare seus contextos independentemente.  O usuário final verá o conteúdo de infopop combinado de todos os plug-ins que contribuíram com contextos para o id do widget.

Observe que é necessário utilizar o id de contexto completo para o widget, uma vez que nenhum dos plug-ins de documentação declarou o id de contexto.  Quando vários plug-ins contribuem com infopops para o mesmo id de contexto, o conteúdo definido no plug-in que declarou o contexto (o plug-in da UI) é mostrado em primeiro lugar.  Descrições e links adicionais são anexados sem ordem especificada.

Copyright IBM Corp. e outros 2000,2002.