Skip to end of metadata
Go to start of metadata

This is the Atlassian Connector for Visual Studio project - it originated as  PL-293 - Getting issue details... STATUS for the Atlassian IntelliJ Connector and has expanded into a project on its own right.

The issue tracker for this project is at

Latest news

Blog Posts

  • No labels


  1. Take a look at:

    I would very much like if the AnkhSVN part went in somewhat that direction (With the Issues Tab under the Pending Changes window)...
    instead of the current solution witch suffers under the need to use multiple windows.

    Currently the connector seems to have most of it's focus on "We need to be able to add, edit and delete issues from" visual studio.
    Personally i LOVE the web interface Jira 4.0 has, so i would prefer the focus to be integration with Source Control in a way to make it all work as a fully integrated solution.
    There IS ofc. some stuff to consider, the above would be AnkhSVN ONLY, and leave out Perforce and other already supported integration, and thats unintended...

    What I am trying to say:

    • the AnkhSVN integration should be driven by the AnkhSVN interface.
      • and not the Jira integration interface used to manipulate issues.
    • the Perforce integration should be driven by the Perforce interface. (but I don't know if this can even be done as it can with AnkhSVN)
      • and not the Jira integration interface used to manipulate issues.

    But besides that, IT IS A GREAT MOVE to support these kinda out of the box... (or at least one of then, where Ankh is currently the one)...

    • Great thanks and compliments on that.

    Another side note... Found this:

    // todo: well, this is lame. figure out how to handle filling first column to occupy all space in a propper manner
    int summaryWidth = parent.Width
                       - SystemInformation.VerticalScrollBarWidth - MARGIN;
    if (summaryWidth < 0) summaryWidth = 4 * PRIORITY_WIDTH;
    colName.Width = summaryWidth;
    //            colName.MinColumnWidth = summaryWidth;
    //            colName.MaxColumnWidth = summaryWidth;

    A Solution would be to extend and use a DataGridView since it supports Fill, and is highly extensible. Looking at the current Grid showing Issues, you could with advantage use a DataGridView instead.

    here is an example of a very simple way of making a "JiraSummary" column that connects the Type icon with key and summary.

        public class JiraSummaryCell : DataGridViewTextBoxCell
            protected override void Paint( Graphics graphics, 
                Rectangle clipBounds, Rectangle cellBounds, int rowIndex, 
                DataGridViewElementStates cellState, object value, object formattedValue, string errorText, 
                DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, 
                DataGridViewPaintParts paintParts )
                Rectangle background = new Rectangle( cellBounds.X, cellBounds.Y, cellBounds.Width, cellBounds.Height );
                graphics.FillRectangle( new SolidBrush(cellStyle.BackColor), background );
                // Call the base class method to paint the default cell appearance.
                DataElement elm = value as DataElement;
                int size = cellBounds.Height;
                Rectangle rec1 = new Rectangle( cellBounds.X + size, cellBounds.Y, cellBounds.Width - size, cellBounds.Height );
                Rectangle rec2 = new Rectangle( cellBounds.X + size + 40, cellBounds.Y, cellBounds.Width - (size + 40), cellBounds.Height );
                //Draw icon here.
                if ( elm != null )
                    graphics.DrawImage( elm.Image, cellBounds.X + 2, cellBounds.Y + 2 );
                    base.Paint( graphics, clipBounds, rec1, rowIndex, cellState,
                        value, elm.Key, errorText, cellStyle,
                        advancedBorderStyle, paintParts );
                    base.Paint( graphics, clipBounds, rec2, rowIndex, cellState,
                        value, "- "+elm.Summary, errorText, cellStyle,
                        advancedBorderStyle, paintParts );
                    base.Paint( graphics, clipBounds, cellBounds, rowIndex, cellState,
                        value, formattedValue, errorText, cellStyle,
                        advancedBorderStyle, paintParts );
        public class JiraSummaryColumn : DataGridViewColumn
            public JiraSummaryColumn()
                CellTemplate = new JiraSummaryCell();
        public class DataItem
            public bool Selected { get; set; }
            public DataElement Summary { get; private set; }
            public string Status { get; private set; }
            public string Type { get; private set; }
            public string Message { get; private set; }
            public DataItem(int number)
                Summary = new DataElement( "JVS-" + number, "My Issue of Importance" );
                Status = "Open";
                Type = "Feature";
                Message = "Custom Stuff";
        public class DataElement
            public string Key { get; private set; }
            public string Summary { get; private set; }
            public Image Image { get; set; }
            public DataElement(string key, string summary)
                Key = key;
                Summary = summary;

    hope it helps... If you want the full source (with a grid configured on a form using such a cell/column) give me some place to send it... it is purely to demonstrate though...

    1. Hi,

      re - AnkhSVN. So far, I was just experimenting with what can be done with it and how the API looks like. Don't treat the current solution as anything even close to what the "real thing" is going to be. But I kind of doubt that we will try to put all of our UI inside the "issues" tab of ankh UI. We really do want to have our own identity (read: toolwindow) where, Atlassian-related stuff happens, regardless of whether there even is AnkhSVN installed. If anything, I suspect we will go with the "active issue" concept, where you would select an issue and it would become a center of the current context, in which you are working in your IDE. See Eclipse's Mylyn or the way the Atlassian Connector for IntelliJ IDEA works for the examples of the implementation of the concept.

      As to DataGridView - frankly is kind of really like the way TreeViewAdv works. It is very flexible. And it gives you an actual hierarchical tree, which DataGridView does not. The solution that I am using is lame, granted, but I think it is good enough in practice. So much so that I no longer notice the lameness. And I have to suffer the shortcomings of my code on a daily basis (smile)

      1. Think you misunderstood the AnkhSVN part a bit (smile).

        The idea was not to put the entire "Jira" interface into the "Ankh" tab, it was more about supporting the way people in Visual Studio is used to work with Issues.
        Here is the CollabNet and TFS way to link issues to a commit.

        CollabNet AnkhSVN Issue Tracker integration:

        TFS Work Items Integration:

        As you can see they are extremely similar.

        For the rest, I don't care to much, I don't use it at all actually, the Web-interface is in all intend and purpose really well done and with GreenHopper on top I prefer to do all task transitions right there on the task board as well as creating, editing ect, so I don't really wan't to move away from that. In fact, I'm not the one to go "Uhhh" about the Eclipse nor IntelliJ IDEA integration, they just seems redundant which can be ok (if they work well).

        Regarding the grid, it supports what you wan't it to (smile)... but I can see the problem in using hours on it to get it where you want or paying for a grid like which just takes the same time or more (nightmare for the developer, neat for the user) in configuration >.<...