Incluindo Ações de Equipe

O plug-in da UI da equipe define uma extensão de menu pop-up para consolidar todas as ações relacionadas à equipe em um local.  O menu da equipe inclui vários slots de subgrupos para que os plug-ins do fornecedor da equipe possam contribuir com ações e ter algum controle sobre a ordem dos itens no menu.  A seguinte marcação vem do manifesto do plug-in da UI:

<extension
     point="org.eclipse.ui.popupMenus">
	<objectContribution
       	   id="org.eclipse.team.ui.ResourceContributions"
           objectClass="org.eclipse.core.resources.IResource" adaptable="true">
		<menu
			id="team.main"
			path="additions"
			label="%TeamGroupMenu.label">
			<separator name="group1"/>
			<separator name="group2"/>
			<separator name="group3"/>
			<separator name="group4"/>
			<separator name="group5"/>
			<separator name="group6"/>
			<separator name="group7"/>
			<separator name="group8"/>
			<separator name="group9"/>
			<separator name="group10"/>
			<separator name="targetGroup"/>
			<separator name="projectGroup"/>
		</menu>
	... 
</extension>

Um menu de equipe é incluído no menu pop-up de todas as exibições que mostram recursos (ou objetos que se adaptam aos recursos.)  Seu plug-in pode utilizar o ID desse menu e os grupos separadores para adicionar seus próprios itens de menu.  Não há nada que o impeça de definir seus próprios menus pop-up, conjuntos de ação ou ações de visualização e do editor.  Entretanto, adicionar suas ações ao menu predefinido da equipe facilita ao usuário final localizar suas ações.

Vamos examinar uma ação do CVS que demonstra alguns pontos interessantes:

<extension
    point="org.eclipse.ui.popupMenus">
     <objectContribution
           objectClass="org.eclipse.core.resources.IFile"
           adaptable="true"
           id="org.eclipse.team.ccvs.ui.IFileContributions">
        <filter
              name="projectPersistentProperty"
              value="org.eclipse.team.core.repository=org.eclipse.team.cvs.core.cvsnature">
        </filter>
        <action
              label="%IgnoreAction.label"
              tooltip="%IgnoreAction.tooltip"
              class="org.eclipse.team.internal.ccvs.ui.actions.IgnoreAction"
              menubarPath="team.main/group3"
              helpContextId="org.eclipse.team.cvs.ui.team_ignore_action_context"
              id="org.eclipse.team.ccvs.ui.ignore">
        </action>
	...

Observe que a ação recebe contribuição utilizando o ponto de extensão org.eclipse.ui.popupMenus do workbench.  A seguir, alguns itens específicos da equipe que ocorrem na marcação:

A implementação de uma ação depende muito de seu fornecedor específico.