Manuals

O interface do IBugtraqProvider

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

TortoiseSVN homepage