O TortoiseSVN 1.5 e superior pode usar os plugins que implementam a interface IBugtraqProvider. A interface providencia alguns métodos que os plugins podem usar para interagir com o seguidor de problemas.
HRESULT ValidateParameters ( // Janela Pai para cada UI que necessita de ser // mostrada durante a validação. [in] HWND hParentWnd, // O parametro de string que necessita de ser validada. [in] BSTR parameters, // A string é valida? [out, retval] VARIANT_BOOL *valid );
Este método é chamado a partir da caixa de diálogo preferências, onde o utilizador pode adicionar e configurar o plugin. A string parameters
pode ser usada pelo plugin para obter informação adicional requerida, e.g., o URL para o seguidor de problemas, informação de login, etc. O plugin deverá verificar a string parameters
e mostrar uma mensagem de erro se a string não é valida. O parâmetro hParentWnd
deverá ser usado por qualquer caixa de diálogo que o plugin mostre, como a janela pai. O plugin deverá retornar TRUE se a validação da string parameters
for efectuada com sucesso. Se o plugin retornar FALSE, a janela de preferências não permitirá ao utilizador adicionar o plugin ao caminho da cópia de trabalho.
HRESULT GetLinkText ( // Janela pai para qualquer (erro) de UI que necessite de ser mostrado. [in] HWND hParentWnd, // O parametro string, para o caso de necessitares de falar com o teu // web service (e.g.) para descobrires qual é o texto correcto. [in] BSTR parameters, // Que texto queres mostrar? // Use the current thread locale. [out, retval] BSTR *linkText );
O plugin pode providenciar aqui uma string, que é usada pela caixa de diálogo de submissão do TortoiseSVN, para o botão que invoca o plugin, e.g., "Escolhe o problema" ou "Selecciona bilhete". Tem a certeza que a string não é muito longa, de outro modo poderá não caber no botão. Se o método retornar um erro (e.g., E_NOTIMPL
), o texto por defeito será usado para o botão.
HRESULT GetCommitMessage ( // Janela pai para o UI do teu fornecedor. [in] HWND hParentWnd, // Parâmetros para o teu fornecedor. [in] BSTR parameters, [in] BSTR commonRoot, [in] SAFEARRAY(BSTR) pathList, // O texto já presente na mensagem de registo. // O teu fornecedor deverá incluir este texto na nova mensagem, // quando apropriado. [in] BSTR originalMessage, // O novo texto para a mensagem de registo. // Isto substituirá a mensagem original. [out, retval] BSTR *newMessage );
Este é o método principal do plugin. Este método é chamado a partir da caixa de diálogo submeter do TortoiseSVN, quando o utilizador clica no botão do plugin.
A string parameters
é a string que o utilizador tem de introduzir na caixa de diálogo preferências, quando configura o plugin. Normalmente o plugin irá fazer uso disto para encontrar o URL do seguidor de problemas e/ou informação de login ou outros.
A string commonRoot
contém o caminho pai de todos os itens seleccionados, ao abrir a caixa de diálogo submeter. Ter em atenção que este não é o caminho raiz de todos os itens que o utilizador seleccionou na janela de submissão. Para a caixa de diálogo ramo/etiqueta, este é o caminho que será copiado.
O parâmetro pathList
contém um array de caminhos (como strings) que o utilizador tem de seleccionar para a submissão.
O parâmetro originalMessage
contém o texto introduzido na caixa de diálogo mensagem de registo, na caixa de diálogo submeter. Se o utilizador não introduziu ainda qualquer texto, a string estará vazia.
A string de retorno newMessage
é copiada para a caixa de edição mensagem de registo na caixa de diálogo submeter, substituindo o que já lá esteja. Se o plugin não modificar a string originalMessage
, deverá retornar de novo a mesma string, de outro modo qualquer texto que o utilizador introduziu será perdido.