Добавление действий для коллективной работы

Для того, чтобы собрать все действия, связанные с коллективной работой, в одном месте, в модуле UI коллективной работы определено расширение всплывающего меню.  Меню Коллективная работа включает множество слотов подгрупп. Это сделано для того, чтобы модули поддержки коллективной работы могли добавлять действия и отчасти управлять пунктами меню.  Следующий текст взят из манифеста модуля 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>

Меню Коллективная работа добавляется во всплывающее меню всех панелей, отображающих ресурсы (или объекты, применяющие ресурсы.)  Для добавления в меню своих пунктов в модуле можно использовать ИД этого меню и группы разделителей.  Также ничего не мешает вам определить свои собственные всплывающие меню, наборы действий или панель и действия редактора.  Однако добавление в готовое меню Коллективная работа своих действий упрощает его для конечных пользователей.

Рассмотрим действие CVS, в котором есть несколько интересных моментов:

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

Обратите внимание, что действие добавляется с помощью точки расширения рабочей среды org.eclipse.ui.popupMenus .  В коде есть несколько интересных моментов, связанных с коллективной работой:

Реализация действия сильно зависит от конкретного типа хранилища.