O plug-in da UI da equipe define uma extensão de menu popup 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 provedor da equipe possam contribuir com ações e ter um pouco de controle sobre a ordem dos itens no menu. A seguinte marcação vem do manifest 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 popup 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 incluir seus próprios itens de menu. Não há nada que o impeça de definir seus próprios menus popup, conjuntos de ações ou ações da exibição ou do editor. Entretanto, a inclusão das ações no menu predefinido da equipe facilita a localização das ações pelo usuário.
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 provedor específico.