Añadir acciones de equipo

El conector de la UI del equipo define una extensión de menú emergente destinada a consolidar en un solo lugar todas las acciones relacionadas con el equipo.  El menú del equipo incluye muchas ranuras de subgrupos para que los conectores del proveedor del equipo puedan contribuir con acciones y poseer algo de control sobre el orden de aparición de los elementos en el menú.  Los siguientes códigos XML proceden del manifiesto del conector de la UI del equipo:

<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>

El menú del equipo se añade al menú emergente de todas las vistas que muestran recursos (u objetos que se adaptan a los recursos).  El conector puede utilizar el ID de este menú y los grupos de separación para que el usuario pueda añadir elementos de menú propios.  No hay nada que le impida definir sus propios menús emergentes, conjuntos de acciones o ver y editar acciones.  Sin embargo, la adición de las acciones al menú de equipo predefinido facilita la búsqueda de las acciones por parte del usuario final.

Veamos una acción de CVS que sirve de demostración de algunos puntos interesantes:

<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, para contribuir con la acción, se utiliza el punto de extensión org.eclipse.ui.popupMenus del entorno de trabajo.  A continuación se indican algunos hechos específicos del equipo que suceden en los códigos XML:

La implementación de una acción depende en gran medida del proveedor específico.