2 using System.Collections.Generic;
\r
4 using System.Windows.Forms;
\r
5 using System.Runtime.InteropServices;
\r
6 using Microsoft.Win32;
\r
8 namespace ExampleCsPlugin
\r
11 Guid("5870B3F1-8393-4c83-ACED-1D5E803A4F2B"),
\r
12 ClassInterface(ClassInterfaceType.None)]
\r
13 public class MyPlugin : Interop.BugTraqProvider.IBugTraqProvider2, Interop.BugTraqProvider.IBugTraqProvider
\r
15 private List<TicketItem> selectedTickets = new List<TicketItem>();
\r
17 public bool ValidateParameters(IntPtr hParentWnd, string parameters)
\r
22 public string GetLinkText(IntPtr hParentWnd, string parameters)
\r
24 return "Choose Issue";
\r
27 public string GetCommitMessage(IntPtr hParentWnd, string parameters, string commonRoot, string[] pathList,
\r
28 string originalMessage)
\r
30 return GetCommitMessage2( hParentWnd, parameters, "", commonRoot, pathList, originalMessage );
\r
33 public string GetCommitMessage2( IntPtr hParentWnd, string parameters, string commonURL, string commonRoot, string[] pathList,
\r
34 string originalMessage )
\r
38 List<TicketItem> tickets = new List<TicketItem>( );
\r
39 tickets.Add( new TicketItem( 12, "Service doesn't start on Windows Vista" ) );
\r
40 tickets.Add( new TicketItem( 19, "About box doesn't render correctly in large fonts mode" ) );
\r
43 tickets.Add(new TicketItem(88, commonRoot));
\r
44 foreach (string path in pathList)
\r
45 tickets.Add(new TicketItem(99, path));
\r
48 MyIssuesForm form = new MyIssuesForm( tickets );
\r
49 if ( form.ShowDialog( ) != DialogResult.OK )
\r
50 return originalMessage;
\r
52 StringBuilder result = new StringBuilder( originalMessage );
\r
53 if ( originalMessage.Length != 0 && !originalMessage.EndsWith( "\n" ) )
\r
54 result.AppendLine( );
\r
56 foreach ( TicketItem ticket in form.TicketsFixed )
\r
58 result.AppendFormat( "Fixed #{0}: {1}", ticket.Number, ticket.Summary );
\r
59 result.AppendLine( );
\r
60 selectedTickets.Add( ticket );
\r
63 return result.ToString( );
\r
65 catch ( Exception ex )
\r
67 MessageBox.Show( ex.ToString( ) );
\r
72 public string OnCommitFinished( IntPtr hParentWnd, string commonRoot, string[] pathList, string logMessage, int revision )
\r
74 // we now could use the selectedTickets member to find out which tickets
\r
75 // were assigned to this commit.
\r
76 CommitFinishedForm form = new CommitFinishedForm( selectedTickets );
\r
77 if ( form.ShowDialog( ) != DialogResult.OK )
\r
79 // just for testing, we return an error string
\r
80 return "an error happened while closing the issue";
\r
83 public bool HasOptions()
\r
88 public string ShowOptionsDialog( IntPtr hParentWnd, string parameters )
\r
90 OptionsForm form = new OptionsForm( );
\r
91 if ( form.ShowDialog( ) != DialogResult.OK )
\r
94 string options = form.checkBox1.Checked ? "option1" : "";
\r
95 options += form.checkBox2.Checked ? "option2" : "";
\r