Normalmente, a primeira etapa na construção de uma UI de equipe é implementar uma página de assistente que permite aos usuários configurar um projeto para o suporte de equipe de seu plug-in. Esse é o lugar onde o ID do provedor de equipe será adicionado às propriedades do projeto. Você participa na configuração do projeto pela contribuição ao ponto de extensão org.eclipse.team.ui.configurationWizards. Esse assistente é mostrado quando o usuário escolhe Equipe->Compartilhar Projeto...
Examinaremos isso no contexto da implementação do cliente CVS. A seguir, a marcação da UI do CVS para seu assistente de configuração:
<extension point="org.eclipse.team.ui.configurationWizards"> <wizard name="%SharingWizard.name" icon="icons/full/wizards/newconnect_wiz.gif" class="org.eclipse.team.internal.ccvs.ui.wizards.SharingWizard" id="org.eclipse.team.ccvs.ui.SharingWizard"> </wizard> </extension>
Como de costume, os plug-ins fornecem uma classe que implementa a extensão e um ID exclusivo para identificar sua extensão. O nome e o ícone são mostrados na primeira página do assistente de configuração do projeto se houver vários provedores entre os quais escolher.
Depois que o usuário seleciona um provedor, a página seguinte mostra as informações de configuração específicas de seu provedor. (Se seu provedor for o único plug-in de provedor de equipe instalado, o assistente irá diretamente para sua página.) Seu assistente deve implementar IConfigurationWizard, que inicializa o assistente para um workbench e projeto especificados. O restante da implementação depende do design de seu assistente. Você deve reunir todas as informações necessárias para associar o projeto a seu suporte de equipe.
Quando o assistente for concluído, será necessário mapear o provedor da equipe para o projeto utilizando RepositoryProvider.map(IProject, String). O mapeamento trata da atribuição da propriedade persistente correta do seu projeto.
O cliente CVS realiza esse trabalho no método setSharing de seu provedor, que é chamado quando o assistente é concluído:
public void setSharing(IProject project, FolderSyncInfo info, IProgressMonitor monitor) throws TeamException { // Assegure que as informações fornecidas correspondam às do projeto ... // Assegure que a localização fornecida seja gerenciada ... // Registre o projeto com a Equipe RepositoryProvider.map(project, CVSProviderPlugin.getTypeId()); }