Adicionando Ativadores à Plataforma

Seu plug-in pode adicionar tipos de configuração de ativação para a plataforma utilizando o ponto de extensão org.eclipse.debug.core.launchConfigurationTypes   Esse ponto de extensão permite declarar um tipo de configuração utilizando um ID exclusivo.  Você deve fornecer uma implementação correspondente de ILaunchConfigurationDelegate. O delegado é responsável por ativar sua configuração de ativação em um modo especificado. Opcionalmente, é possível implementar ILaunchConfigurationDelegate2, o que aumenta a interface do delegado para permitir que seu delegado interrompa uma ativação, construa projetos relevantes no espaço de trabalho antes de uma ativação e controle a criação do objeto de ativação utilizado em uma ativação.

Além disso, para definir o delegado, é possível especificar quais modos de ativação são suportados pelo seu delegado e um nome que deve ser utilizado ao mostrar ativadores desse tipo para o usuário.

A seguinte marcação mostra como as ferramentas Java declaram uma configuração de ativação Java para a ativação de programas locais Java:

<extension point = "org.eclipse.debug.core.launchConfigurationTypes">
   <launchConfigurationType
   	   id="org.eclipse.jdt.launching.localJavaApplication"
	   name="%localJavaApplication"
	   delegate="org.eclipse.jdt.internal.launching.JavaLocalApplicationLaunchConfigurationDelegate"
	   modes= "execução, depuração"
	   sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
       sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer">
   </launchConfigurationType>
   </extension>

Essa extensão define um delegado da configuração de ativação que pode ser utilizado para executar ou depurar programas que são ativados utilizando a configuração de ativação Java local.

Definindo Novos Modos de Ativação

Mencionamos anteriormente que a plataforma define os modos de ativação para executar, depurar ou traçar perfis de um programa. Esses modos são definidos utilizando o ponto de extensão org.eclipse.debug.core.launchModes. Esse ponto de extensão permite declarar um modo de ativação, definindo seu nome de modo de cadeia e a etiqueta que deve ser mostrada ao usuário para descrever o modo. A marcação a seguir mostra a definição dos três modos de ativação padrão da plataforma:

<extension point="org.eclipse.debug.core.launchModes">
	<launchMode
		label="%run"
		mode="run">
	</launchMode>
	<launchMode
		label="%debug"
		mode="debug">
	</launchMode>
	<launchMode
		label="%profile"
		mode="profile">
	</launchMode>
    </extension>

Observe que o modo não está associado a nenhum tipo de configuração de ativação específico. Conforme mostrado anteriormente, aquela associação ocorre quando um delegado de ativação é especificado para um tipo de configuração.

Definindo Delegados de Ativação

Como os modos de ativação podem ser especificados independentemente dos tipos de configuração de ativação, é possível que novos modos sejam definidos que não são implementados pelo delegado original para uma configuração de ativação. Nesse caso, um plug-in pode definir um delegado de ativação que implementa um modo específico para um tipo de configuração de ativação específico. Isso pode ser feito, utilizando o ponto de extensão org.eclipse.debug.core.launchDelegates. Esse ponto de extensão permite definir um delegado de ativação que implementa os modos especificados para um determinado tipo de configuração. A marcação a seguir mostra como foi possível definir um delegado para traçar o perfil de um aplicativo Java local:

<extension point="org.eclipse.debug.core.launchDelegates">
<launchDelegate
   id="com.example.MyJavaProfileDelegate"
   delegate="com.example.MyJavaProfileDelegate"
   type="org.eclipse.jdt.launching.localJavaApplication"
   modes="profile">
  </launchDelegate>
    </extension>

A especificação do delegado é semelhante à maneira como ele é feito ao definir um tipo de configuração de ativação, exceto que, neste caso, o tipo de configuração de ativação é especificado juntamente com os modos suportados. Conforme visto anteriormente, o delegado deve implementar ILaunchConfigurationDelegate e pode implementar, opcionalmente, ILaunchConfigurationDelegate2 para obter mais controle sobre a seqüência de ativação.

Outras Referências

We Have Lift-off: The Launching Framework in Eclipse fornece um início para finalizar o exemplo para definir seu próprio tipo de ativação.