Commits

Kamyar Inanloo committed 56813ce

Ticket Modification, Combo coloring.

Comments (0)

Files changed (25)

TracVS/Connect.cs

Binary file modified.

TracVS/Constants.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Drawing;
+
+namespace TracVS
+{
+    public class Constants
+    {
+        public static Color[] Colors = { Color.PaleVioletRed, Color.Pink, Color.Wheat, Color.White, Color.SkyBlue, Color.LightCyan}; 
+    }
+}

TracVS/EditTicket.Designer.cs

+namespace TracVS
+{
+    partial class EditTicket
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.gbRequired = new System.Windows.Forms.GroupBox();
+            this.txtDescription = new System.Windows.Forms.TextBox();
+            this.lbSummary = new System.Windows.Forms.Label();
+            this.lbDescription = new System.Windows.Forms.Label();
+            this.txtSummary = new System.Windows.Forms.TextBox();
+            this.btnCancel = new System.Windows.Forms.Button();
+            this.lbComponent = new System.Windows.Forms.Label();
+            this.gbOptional = new System.Windows.Forms.GroupBox();
+            this.lbVersion = new System.Windows.Forms.Label();
+            this.lbSeverity = new System.Windows.Forms.Label();
+            this.cmbType = new System.Windows.Forms.ComboBox();
+            this.lbType = new System.Windows.Forms.Label();
+            this.cmbPriority = new System.Windows.Forms.ComboBox();
+            this.lbPriority = new System.Windows.Forms.Label();
+            this.cmbSeverity = new System.Windows.Forms.ComboBox();
+            this.cmbComponent = new System.Windows.Forms.ComboBox();
+            this.cmbVersion = new System.Windows.Forms.ComboBox();
+            this.btnOk = new System.Windows.Forms.Button();
+            this.lbOwner = new System.Windows.Forms.Label();
+            this.cmbResolution = new System.Windows.Forms.ComboBox();
+            this.lbResolution = new System.Windows.Forms.Label();
+            this.lbComment = new System.Windows.Forms.Label();
+            this.txtComment = new System.Windows.Forms.TextBox();
+            this.txtOwner = new System.Windows.Forms.TextBox();
+            this.gbRequired.SuspendLayout();
+            this.gbOptional.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // gbRequired
+            // 
+            this.gbRequired.Controls.Add(this.txtComment);
+            this.gbRequired.Controls.Add(this.txtDescription);
+            this.gbRequired.Controls.Add(this.lbComment);
+            this.gbRequired.Controls.Add(this.lbSummary);
+            this.gbRequired.Controls.Add(this.lbDescription);
+            this.gbRequired.Controls.Add(this.txtSummary);
+            this.gbRequired.Location = new System.Drawing.Point(12, 12);
+            this.gbRequired.Name = "gbRequired";
+            this.gbRequired.Size = new System.Drawing.Size(551, 246);
+            this.gbRequired.TabIndex = 9;
+            this.gbRequired.TabStop = false;
+            this.gbRequired.Text = "Required";
+            // 
+            // txtDescription
+            // 
+            this.txtDescription.Location = new System.Drawing.Point(104, 69);
+            this.txtDescription.Multiline = true;
+            this.txtDescription.Name = "txtDescription";
+            this.txtDescription.ReadOnly = true;
+            this.txtDescription.Size = new System.Drawing.Size(413, 63);
+            this.txtDescription.TabIndex = 2;
+            // 
+            // lbSummary
+            // 
+            this.lbSummary.AutoSize = true;
+            this.lbSummary.Location = new System.Drawing.Point(31, 32);
+            this.lbSummary.Name = "lbSummary";
+            this.lbSummary.Size = new System.Drawing.Size(56, 13);
+            this.lbSummary.TabIndex = 0;
+            this.lbSummary.Text = "Summary :";
+            // 
+            // lbDescription
+            // 
+            this.lbDescription.AutoSize = true;
+            this.lbDescription.Location = new System.Drawing.Point(31, 69);
+            this.lbDescription.Name = "lbDescription";
+            this.lbDescription.Size = new System.Drawing.Size(66, 13);
+            this.lbDescription.TabIndex = 0;
+            this.lbDescription.Text = "Description :";
+            // 
+            // txtSummary
+            // 
+            this.txtSummary.Location = new System.Drawing.Point(104, 29);
+            this.txtSummary.Name = "txtSummary";
+            this.txtSummary.ReadOnly = true;
+            this.txtSummary.Size = new System.Drawing.Size(413, 20);
+            this.txtSummary.TabIndex = 1;
+            // 
+            // btnCancel
+            // 
+            this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+            this.btnCancel.Location = new System.Drawing.Point(381, 434);
+            this.btnCancel.Name = "btnCancel";
+            this.btnCancel.Size = new System.Drawing.Size(97, 28);
+            this.btnCancel.TabIndex = 8;
+            this.btnCancel.Text = "Cancel";
+            this.btnCancel.UseVisualStyleBackColor = true;
+            this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
+            // 
+            // lbComponent
+            // 
+            this.lbComponent.AutoSize = true;
+            this.lbComponent.Location = new System.Drawing.Point(31, 31);
+            this.lbComponent.Name = "lbComponent";
+            this.lbComponent.Size = new System.Drawing.Size(67, 13);
+            this.lbComponent.TabIndex = 0;
+            this.lbComponent.Text = "Component :";
+            // 
+            // gbOptional
+            // 
+            this.gbOptional.Controls.Add(this.txtOwner);
+            this.gbOptional.Controls.Add(this.lbComponent);
+            this.gbOptional.Controls.Add(this.lbResolution);
+            this.gbOptional.Controls.Add(this.lbOwner);
+            this.gbOptional.Controls.Add(this.lbVersion);
+            this.gbOptional.Controls.Add(this.lbSeverity);
+            this.gbOptional.Controls.Add(this.cmbType);
+            this.gbOptional.Controls.Add(this.lbType);
+            this.gbOptional.Controls.Add(this.cmbPriority);
+            this.gbOptional.Controls.Add(this.lbPriority);
+            this.gbOptional.Controls.Add(this.cmbSeverity);
+            this.gbOptional.Controls.Add(this.cmbResolution);
+            this.gbOptional.Controls.Add(this.cmbComponent);
+            this.gbOptional.Controls.Add(this.cmbVersion);
+            this.gbOptional.Location = new System.Drawing.Point(12, 264);
+            this.gbOptional.Name = "gbOptional";
+            this.gbOptional.Size = new System.Drawing.Size(551, 148);
+            this.gbOptional.TabIndex = 10;
+            this.gbOptional.TabStop = false;
+            this.gbOptional.Text = "Optional";
+            // 
+            // lbVersion
+            // 
+            this.lbVersion.AutoSize = true;
+            this.lbVersion.Location = new System.Drawing.Point(33, 71);
+            this.lbVersion.Name = "lbVersion";
+            this.lbVersion.Size = new System.Drawing.Size(48, 13);
+            this.lbVersion.TabIndex = 0;
+            this.lbVersion.Text = "Version :";
+            // 
+            // lbSeverity
+            // 
+            this.lbSeverity.AutoSize = true;
+            this.lbSeverity.Location = new System.Drawing.Point(366, 71);
+            this.lbSeverity.Name = "lbSeverity";
+            this.lbSeverity.Size = new System.Drawing.Size(51, 13);
+            this.lbSeverity.TabIndex = 0;
+            this.lbSeverity.Text = "Severity :";
+            // 
+            // cmbType
+            // 
+            this.cmbType.FormattingEnabled = true;
+            this.cmbType.Location = new System.Drawing.Point(435, 28);
+            this.cmbType.Name = "cmbType";
+            this.cmbType.Size = new System.Drawing.Size(82, 21);
+            this.cmbType.TabIndex = 3;
+            // 
+            // lbType
+            // 
+            this.lbType.AutoSize = true;
+            this.lbType.Location = new System.Drawing.Point(366, 31);
+            this.lbType.Name = "lbType";
+            this.lbType.Size = new System.Drawing.Size(37, 13);
+            this.lbType.TabIndex = 0;
+            this.lbType.Text = "Type :";
+            // 
+            // cmbPriority
+            // 
+            this.cmbPriority.FormattingEnabled = true;
+            this.cmbPriority.Location = new System.Drawing.Point(261, 68);
+            this.cmbPriority.Name = "cmbPriority";
+            this.cmbPriority.Size = new System.Drawing.Size(82, 21);
+            this.cmbPriority.TabIndex = 3;
+            this.cmbPriority.SelectedIndexChanged += new System.EventHandler(this.cmbPriority_SelectedIndexChanged);
+            // 
+            // lbPriority
+            // 
+            this.lbPriority.AutoSize = true;
+            this.lbPriority.Location = new System.Drawing.Point(211, 71);
+            this.lbPriority.Name = "lbPriority";
+            this.lbPriority.Size = new System.Drawing.Size(44, 13);
+            this.lbPriority.TabIndex = 0;
+            this.lbPriority.Text = "Priority :";
+            // 
+            // cmbSeverity
+            // 
+            this.cmbSeverity.FormattingEnabled = true;
+            this.cmbSeverity.Location = new System.Drawing.Point(435, 68);
+            this.cmbSeverity.Name = "cmbSeverity";
+            this.cmbSeverity.Size = new System.Drawing.Size(82, 21);
+            this.cmbSeverity.TabIndex = 3;
+            this.cmbSeverity.SelectedIndexChanged += new System.EventHandler(this.cmbSeverity_SelectedIndexChanged);
+            // 
+            // cmbComponent
+            // 
+            this.cmbComponent.FormattingEnabled = true;
+            this.cmbComponent.Location = new System.Drawing.Point(104, 28);
+            this.cmbComponent.Name = "cmbComponent";
+            this.cmbComponent.Size = new System.Drawing.Size(161, 21);
+            this.cmbComponent.TabIndex = 3;
+            // 
+            // cmbVersion
+            // 
+            this.cmbVersion.FormattingEnabled = true;
+            this.cmbVersion.Location = new System.Drawing.Point(104, 68);
+            this.cmbVersion.Name = "cmbVersion";
+            this.cmbVersion.Size = new System.Drawing.Size(82, 21);
+            this.cmbVersion.TabIndex = 3;
+            // 
+            // btnOk
+            // 
+            this.btnOk.Location = new System.Drawing.Point(116, 434);
+            this.btnOk.Name = "btnOk";
+            this.btnOk.Size = new System.Drawing.Size(97, 28);
+            this.btnOk.TabIndex = 7;
+            this.btnOk.Text = "Save";
+            this.btnOk.UseVisualStyleBackColor = true;
+            this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
+            // 
+            // lbOwner
+            // 
+            this.lbOwner.AutoSize = true;
+            this.lbOwner.Location = new System.Drawing.Point(33, 109);
+            this.lbOwner.Name = "lbOwner";
+            this.lbOwner.Size = new System.Drawing.Size(44, 13);
+            this.lbOwner.TabIndex = 0;
+            this.lbOwner.Text = "Owner :";
+            // 
+            // cmbResolution
+            // 
+            this.cmbResolution.FormattingEnabled = true;
+            this.cmbResolution.Location = new System.Drawing.Point(435, 103);
+            this.cmbResolution.Name = "cmbResolution";
+            this.cmbResolution.Size = new System.Drawing.Size(82, 21);
+            this.cmbResolution.TabIndex = 3;
+            // 
+            // lbResolution
+            // 
+            this.lbResolution.AutoSize = true;
+            this.lbResolution.Location = new System.Drawing.Point(366, 106);
+            this.lbResolution.Name = "lbResolution";
+            this.lbResolution.Size = new System.Drawing.Size(63, 13);
+            this.lbResolution.TabIndex = 0;
+            this.lbResolution.Text = "Resolution :";
+            // 
+            // lbComment
+            // 
+            this.lbComment.AutoSize = true;
+            this.lbComment.Location = new System.Drawing.Point(31, 151);
+            this.lbComment.Name = "lbComment";
+            this.lbComment.Size = new System.Drawing.Size(57, 13);
+            this.lbComment.TabIndex = 0;
+            this.lbComment.Text = "Comment :";
+            // 
+            // txtComment
+            // 
+            this.txtComment.Location = new System.Drawing.Point(104, 148);
+            this.txtComment.Multiline = true;
+            this.txtComment.Name = "txtComment";
+            this.txtComment.Size = new System.Drawing.Size(413, 81);
+            this.txtComment.TabIndex = 2;
+            // 
+            // txtOwner
+            // 
+            this.txtOwner.Location = new System.Drawing.Point(104, 109);
+            this.txtOwner.Name = "txtOwner";
+            this.txtOwner.Size = new System.Drawing.Size(100, 20);
+            this.txtOwner.TabIndex = 4;
+            // 
+            // EditTicket
+            // 
+            this.AcceptButton = this.btnOk;
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.CancelButton = this.btnCancel;
+            this.ClientSize = new System.Drawing.Size(576, 474);
+            this.Controls.Add(this.gbRequired);
+            this.Controls.Add(this.btnCancel);
+            this.Controls.Add(this.gbOptional);
+            this.Controls.Add(this.btnOk);
+            this.Name = "EditTicket";
+            this.Text = "Modify Ticket";
+            this.gbRequired.ResumeLayout(false);
+            this.gbRequired.PerformLayout();
+            this.gbOptional.ResumeLayout(false);
+            this.gbOptional.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.GroupBox gbRequired;
+        private System.Windows.Forms.TextBox txtDescription;
+        private System.Windows.Forms.Label lbSummary;
+        private System.Windows.Forms.Label lbDescription;
+        private System.Windows.Forms.TextBox txtSummary;
+        private System.Windows.Forms.Button btnCancel;
+        private System.Windows.Forms.Label lbComponent;
+        private System.Windows.Forms.GroupBox gbOptional;
+        private System.Windows.Forms.Label lbOwner;
+        private System.Windows.Forms.Label lbVersion;
+        private System.Windows.Forms.Label lbSeverity;
+        private System.Windows.Forms.ComboBox cmbType;
+        private System.Windows.Forms.Label lbType;
+        private System.Windows.Forms.ComboBox cmbPriority;
+        private System.Windows.Forms.Label lbPriority;
+        private System.Windows.Forms.ComboBox cmbSeverity;
+        private System.Windows.Forms.ComboBox cmbComponent;
+        private System.Windows.Forms.ComboBox cmbVersion;
+        private System.Windows.Forms.Button btnOk;
+        private System.Windows.Forms.Label lbResolution;
+        private System.Windows.Forms.ComboBox cmbResolution;
+        private System.Windows.Forms.TextBox txtComment;
+        private System.Windows.Forms.Label lbComment;
+        private System.Windows.Forms.TextBox txtOwner;
+    }
+}

TracVS/EditTicket.cs

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace TracVS
+{
+    public partial class EditTicket : Form
+    {
+
+        public Ticket Ticket
+        {
+            get;
+            set;
+        }
+
+        public string Comment
+        {
+            get;
+            set;
+        }
+
+        public EditTicket(int id, Ticket ticket, string[] types, string[] components, string[] versions, string[] severities, string[] priorities, string[] resolutions)
+        {
+            InitializeComponent();
+
+            this.cmbType.DataSource = types;
+            this.cmbComponent.DataSource = components;
+            this.cmbVersion.DataSource = versions;
+            this.cmbSeverity.DataSource = severities;
+            this.cmbPriority.DataSource = priorities;
+            this.cmbResolution.DataSource = resolutions;
+
+            txtSummary.Text = ticket.Summary;
+            txtDescription.Text = ticket.Description;
+            cmbComponent.Text = ticket.Component;
+            cmbVersion.Text = ticket.Version;
+            cmbSeverity.Text = ticket.Severity;
+            cmbPriority.Text = ticket.Priority;
+            txtOwner.Text = ticket.Owner;
+            cmbResolution.Text = ticket.Resolution;
+        }
+
+        private void btnOk_Click(object sender, EventArgs e)
+        {
+            this.Ticket.Component = cmbComponent.Text;
+            this.Ticket.Version = cmbVersion.Text;
+            this.Ticket.Severity = cmbSeverity.Text;
+            this.Ticket.Priority = cmbPriority.Text;
+            this.Ticket.Owner = txtOwner.Text;
+            this.Ticket.Resolution = cmbResolution.Text;
+
+            this.Comment = this.txtComment.Text;
+
+            this.DialogResult = DialogResult.OK;
+            this.Close();
+        }
+
+        private void btnCancel_Click(object sender, EventArgs e)
+        {
+            this.Close();
+        }
+
+        private void cmbPriority_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            this.cmbPriority.BackColor = Constants.Colors[cmbPriority.SelectedIndex];
+        }
+
+        private void cmbSeverity_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            this.cmbSeverity.BackColor = Constants.Colors[cmbSeverity.SelectedIndex];
+        }
+
+
+    }
+}

TracVS/EditTicket.resx

+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

TracVS/NewTicket.Designer.cs

             this.cmbSeverity.Name = "cmbSeverity";
             this.cmbSeverity.Size = new System.Drawing.Size(82, 21);
             this.cmbSeverity.TabIndex = 3;
+            this.cmbSeverity.SelectedIndexChanged += new System.EventHandler(this.cmbSeverity_SelectedIndexChanged);
             // 
             // lbPriority
             // 
             this.cmbPriority.Name = "cmbPriority";
             this.cmbPriority.Size = new System.Drawing.Size(82, 21);
             this.cmbPriority.TabIndex = 3;
+            this.cmbPriority.SelectedIndexChanged += new System.EventHandler(this.cmbPriority_SelectedIndexChanged);
             // 
             // btnOk
             // 

TracVS/NewTicket.cs

             this.Close();
         }
 
+        private void cmbPriority_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            this.cmbPriority.BackColor = Constants.Colors[cmbPriority.SelectedIndex];
+        }
+
+        private void cmbSeverity_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            this.cmbSeverity.BackColor = Constants.Colors[cmbSeverity.SelectedIndex];
+        }
+
 
     }
 }

TracVS/Properties/Resources.Designer.cs

             }
         }
         
+        internal static System.Drawing.Bitmap add2 {
+            get {
+                object obj = ResourceManager.GetObject("add2", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap edit {
+            get {
+                object obj = ResourceManager.GetObject("edit", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
+        internal static System.Drawing.Bitmap gear_ok {
+            get {
+                object obj = ResourceManager.GetObject("gear_ok", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+        
         internal static System.Drawing.Bitmap TracVS_icon_small {
             get {
                 object obj = ResourceManager.GetObject("TracVS_icon_small", resourceCulture);

TracVS/Properties/Resources.resx

     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
   <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="add2" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\add2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="edit" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+  <data name="gear_ok" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Resources\gear_ok.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
   <data name="TracVS_icon_small" type="System.Resources.ResXFileRef, System.Windows.Forms">
     <value>..\resources\tracvs-icon-small.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
   </data>

TracVS/Resources/add2.png

Added
New image

TracVS/Resources/document_text.png

Added
New image

TracVS/Resources/edit.png

Added
New image

TracVS/Resources/gear_ok.png

Added
New image

TracVS/TicketFixed.Designer.cs

-namespace TracVS
-{
-    partial class TicketFixing
-    {
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows Form Designer generated code
-
-        /// <summary>
-        /// Required method for Designer support - do not modify
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            this.txtComment = new System.Windows.Forms.TextBox();
-            this.btnOk = new System.Windows.Forms.Button();
-            this.btnCancel = new System.Windows.Forms.Button();
-            this.gbTicketInfo = new System.Windows.Forms.GroupBox();
-            this.lbSummary = new System.Windows.Forms.Label();
-            this.txtDescription = new System.Windows.Forms.TextBox();
-            this.gbComment = new System.Windows.Forms.GroupBox();
-            this.gbTicketInfo.SuspendLayout();
-            this.gbComment.SuspendLayout();
-            this.SuspendLayout();
-            // 
-            // txtComment
-            // 
-            this.txtComment.Location = new System.Drawing.Point(9, 31);
-            this.txtComment.Multiline = true;
-            this.txtComment.Name = "txtComment";
-            this.txtComment.Size = new System.Drawing.Size(397, 125);
-            this.txtComment.TabIndex = 1;
-            // 
-            // btnOk
-            // 
-            this.btnOk.Location = new System.Drawing.Point(45, 352);
-            this.btnOk.Name = "btnOk";
-            this.btnOk.Size = new System.Drawing.Size(75, 23);
-            this.btnOk.TabIndex = 2;
-            this.btnOk.Text = "Set as Fixed";
-            this.btnOk.UseVisualStyleBackColor = true;
-            this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
-            // 
-            // btnCancel
-            // 
-            this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-            this.btnCancel.Location = new System.Drawing.Point(308, 352);
-            this.btnCancel.Name = "btnCancel";
-            this.btnCancel.Size = new System.Drawing.Size(75, 23);
-            this.btnCancel.TabIndex = 2;
-            this.btnCancel.Text = "Cancel";
-            this.btnCancel.UseVisualStyleBackColor = true;
-            this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
-            // 
-            // gbTicketInfo
-            // 
-            this.gbTicketInfo.Controls.Add(this.txtDescription);
-            this.gbTicketInfo.Controls.Add(this.lbSummary);
-            this.gbTicketInfo.Location = new System.Drawing.Point(12, 12);
-            this.gbTicketInfo.Name = "gbTicketInfo";
-            this.gbTicketInfo.Size = new System.Drawing.Size(422, 143);
-            this.gbTicketInfo.TabIndex = 3;
-            this.gbTicketInfo.TabStop = false;
-            this.gbTicketInfo.Text = "Info";
-            // 
-            // lbSummary
-            // 
-            this.lbSummary.AutoSize = true;
-            this.lbSummary.Location = new System.Drawing.Point(6, 16);
-            this.lbSummary.Name = "lbSummary";
-            this.lbSummary.Size = new System.Drawing.Size(50, 13);
-            this.lbSummary.TabIndex = 0;
-            this.lbSummary.Text = "Summary";
-            // 
-            // txtDescription
-            // 
-            this.txtDescription.Location = new System.Drawing.Point(9, 44);
-            this.txtDescription.Multiline = true;
-            this.txtDescription.Name = "txtDescription";
-            this.txtDescription.ReadOnly = true;
-            this.txtDescription.Size = new System.Drawing.Size(397, 82);
-            this.txtDescription.TabIndex = 1;
-            // 
-            // gbComment
-            // 
-            this.gbComment.Controls.Add(this.txtComment);
-            this.gbComment.Location = new System.Drawing.Point(12, 161);
-            this.gbComment.Name = "gbComment";
-            this.gbComment.Size = new System.Drawing.Size(422, 173);
-            this.gbComment.TabIndex = 4;
-            this.gbComment.TabStop = false;
-            this.gbComment.Text = "Comment";
-            // 
-            // TicketFixing
-            // 
-            this.AcceptButton = this.btnOk;
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.CancelButton = this.btnCancel;
-            this.ClientSize = new System.Drawing.Size(446, 387);
-            this.Controls.Add(this.gbComment);
-            this.Controls.Add(this.gbTicketInfo);
-            this.Controls.Add(this.btnCancel);
-            this.Controls.Add(this.btnOk);
-            this.Name = "TicketFixing";
-            this.Text = "Fixing Ticket";
-            this.gbTicketInfo.ResumeLayout(false);
-            this.gbTicketInfo.PerformLayout();
-            this.gbComment.ResumeLayout(false);
-            this.gbComment.PerformLayout();
-            this.ResumeLayout(false);
-
-        }
-
-        #endregion
-
-        private System.Windows.Forms.TextBox txtComment;
-        private System.Windows.Forms.Button btnOk;
-        private System.Windows.Forms.Button btnCancel;
-        private System.Windows.Forms.GroupBox gbTicketInfo;
-        private System.Windows.Forms.TextBox txtDescription;
-        private System.Windows.Forms.Label lbSummary;
-        private System.Windows.Forms.GroupBox gbComment;
-    }
-}

TracVS/TicketFixed.cs

-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-
-namespace TracVS
-{
-    public partial class TicketFixing : Form
-    {
-        public string Comment
-        {
-            get;
-            set;
-        }
-        
-        public TicketFixing(int id, string summary, string description)
-        {
-            InitializeComponent();
-            this.lbSummary.Text = summary;
-            this.txtDescription.Text = description;            
-        }
-
-        private void btnOk_Click(object sender, EventArgs e)
-        {
-            this.DialogResult = DialogResult.OK;
-            this.Comment = this.txtComment.Text;
-            this.Close();
-        }
-
-        private void btnCancel_Click(object sender, EventArgs e)
-        {
-            this.Close();
-        }
-
-
-
-    }
-}

TracVS/TicketFixed.resx

-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

TracVS/TicketFixing.Designer.cs

+namespace TracVS
+{
+    partial class TicketFixing
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.txtComment = new System.Windows.Forms.TextBox();
+            this.btnOk = new System.Windows.Forms.Button();
+            this.btnCancel = new System.Windows.Forms.Button();
+            this.gbTicketInfo = new System.Windows.Forms.GroupBox();
+            this.lbSummary = new System.Windows.Forms.Label();
+            this.txtDescription = new System.Windows.Forms.TextBox();
+            this.gbComment = new System.Windows.Forms.GroupBox();
+            this.gbTicketInfo.SuspendLayout();
+            this.gbComment.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // txtComment
+            // 
+            this.txtComment.Location = new System.Drawing.Point(9, 31);
+            this.txtComment.Multiline = true;
+            this.txtComment.Name = "txtComment";
+            this.txtComment.Size = new System.Drawing.Size(397, 125);
+            this.txtComment.TabIndex = 1;
+            // 
+            // btnOk
+            // 
+            this.btnOk.Location = new System.Drawing.Point(45, 352);
+            this.btnOk.Name = "btnOk";
+            this.btnOk.Size = new System.Drawing.Size(75, 23);
+            this.btnOk.TabIndex = 2;
+            this.btnOk.Text = "Set as Fixed";
+            this.btnOk.UseVisualStyleBackColor = true;
+            this.btnOk.Click += new System.EventHandler(this.btnOk_Click);
+            // 
+            // btnCancel
+            // 
+            this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+            this.btnCancel.Location = new System.Drawing.Point(308, 352);
+            this.btnCancel.Name = "btnCancel";
+            this.btnCancel.Size = new System.Drawing.Size(75, 23);
+            this.btnCancel.TabIndex = 2;
+            this.btnCancel.Text = "Cancel";
+            this.btnCancel.UseVisualStyleBackColor = true;
+            this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
+            // 
+            // gbTicketInfo
+            // 
+            this.gbTicketInfo.Controls.Add(this.txtDescription);
+            this.gbTicketInfo.Controls.Add(this.lbSummary);
+            this.gbTicketInfo.Location = new System.Drawing.Point(12, 12);
+            this.gbTicketInfo.Name = "gbTicketInfo";
+            this.gbTicketInfo.Size = new System.Drawing.Size(422, 143);
+            this.gbTicketInfo.TabIndex = 3;
+            this.gbTicketInfo.TabStop = false;
+            this.gbTicketInfo.Text = "Info";
+            // 
+            // lbSummary
+            // 
+            this.lbSummary.AutoSize = true;
+            this.lbSummary.Location = new System.Drawing.Point(6, 16);
+            this.lbSummary.Name = "lbSummary";
+            this.lbSummary.Size = new System.Drawing.Size(50, 13);
+            this.lbSummary.TabIndex = 0;
+            this.lbSummary.Text = "Summary";
+            // 
+            // txtDescription
+            // 
+            this.txtDescription.Location = new System.Drawing.Point(9, 44);
+            this.txtDescription.Multiline = true;
+            this.txtDescription.Name = "txtDescription";
+            this.txtDescription.ReadOnly = true;
+            this.txtDescription.Size = new System.Drawing.Size(397, 82);
+            this.txtDescription.TabIndex = 1;
+            // 
+            // gbComment
+            // 
+            this.gbComment.Controls.Add(this.txtComment);
+            this.gbComment.Location = new System.Drawing.Point(12, 161);
+            this.gbComment.Name = "gbComment";
+            this.gbComment.Size = new System.Drawing.Size(422, 173);
+            this.gbComment.TabIndex = 4;
+            this.gbComment.TabStop = false;
+            this.gbComment.Text = "Comment";
+            // 
+            // TicketFixing
+            // 
+            this.AcceptButton = this.btnOk;
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.CancelButton = this.btnCancel;
+            this.ClientSize = new System.Drawing.Size(446, 387);
+            this.Controls.Add(this.gbComment);
+            this.Controls.Add(this.gbTicketInfo);
+            this.Controls.Add(this.btnCancel);
+            this.Controls.Add(this.btnOk);
+            this.Name = "TicketFixing";
+            this.Text = "Fixing Ticket";
+            this.gbTicketInfo.ResumeLayout(false);
+            this.gbTicketInfo.PerformLayout();
+            this.gbComment.ResumeLayout(false);
+            this.gbComment.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.TextBox txtComment;
+        private System.Windows.Forms.Button btnOk;
+        private System.Windows.Forms.Button btnCancel;
+        private System.Windows.Forms.GroupBox gbTicketInfo;
+        private System.Windows.Forms.TextBox txtDescription;
+        private System.Windows.Forms.Label lbSummary;
+        private System.Windows.Forms.GroupBox gbComment;
+    }
+}

TracVS/TicketFixing.cs

+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+
+namespace TracVS
+{
+    public partial class TicketFixing : Form
+    {
+        public string Comment
+        {
+            get;
+            set;
+        }
+        
+        public TicketFixing(int id, string summary, string description)
+        {
+            InitializeComponent();
+            this.lbSummary.Text = summary;
+            this.txtDescription.Text = description;            
+        }
+
+        private void btnOk_Click(object sender, EventArgs e)
+        {
+            this.DialogResult = DialogResult.OK;
+            this.Comment = this.txtComment.Text;
+            this.Close();
+        }
+
+        private void btnCancel_Click(object sender, EventArgs e)
+        {
+            this.Close();
+        }
+
+
+
+    }
+}

TracVS/TicketFixing.resx

+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

TracVS/TicketsView.Designer.cs

             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TicketsView));
             this.dgTickets = new System.Windows.Forms.DataGridView();
             this.colSelection = new System.Windows.Forms.DataGridViewComboBoxColumn();
-            this.colIcon = new System.Windows.Forms.DataGridViewImageColumn();
             this.colId = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.colTicketType = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.colSummary = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.colCreated = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.colLastModified = new System.Windows.Forms.DataGridViewTextBoxColumn();
             this.ticketMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
-            this.newTicketToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-            this.setFixedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.lblResults = new System.Windows.Forms.Label();
             this.panel3 = new System.Windows.Forms.Panel();
             this.imgTickets = new System.Windows.Forms.ImageList(this.components);
             this.panel2 = new System.Windows.Forms.Panel();
             this.panel1 = new System.Windows.Forms.Panel();
             this.cmbTicketQuery = new System.Windows.Forms.ToolStripComboBox();
-            this.cmbServer = new System.Windows.Forms.ToolStripComboBox();
             this.searchTextBox = new System.Windows.Forms.ToolStripTextBox();
             this.toolStrip1 = new System.Windows.Forms.ToolStrip();
-            this.btnRefresh = new System.Windows.Forms.ToolStripButton();
             this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
             this.searchLabel = new System.Windows.Forms.ToolStripLabel();
+            this.toolStripContainer1 = new System.Windows.Forms.ToolStripContainer();
+            this.dataGridViewImageColumn1 = new System.Windows.Forms.DataGridViewImageColumn();
+            this.colIcon = new System.Windows.Forms.DataGridViewImageColumn();
+            this.newTicketToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.setFixedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.btnRefresh = new System.Windows.Forms.ToolStripButton();
             this.btnNew = new System.Windows.Forms.ToolStripButton();
             this.btnSetFixed = new System.Windows.Forms.ToolStripButton();
-            this.toolStripContainer1 = new System.Windows.Forms.ToolStripContainer();
+            this.btnEdit = new System.Windows.Forms.ToolStripButton();
             ((System.ComponentModel.ISupportInitialize)(this.dgTickets)).BeginInit();
             this.ticketMenu.SuspendLayout();
             this.panel3.SuspendLayout();
             this.colSelection.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
             this.colSelection.Visible = false;
             // 
-            // colIcon
-            // 
-            this.colIcon.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
-            this.colIcon.DataPropertyName = "Icon";
-            this.colIcon.HeaderText = "";
-            this.colIcon.Image = ((System.Drawing.Image)(resources.GetObject("colIcon.Image")));
-            this.colIcon.Name = "colIcon";
-            this.colIcon.ReadOnly = true;
-            this.colIcon.Resizable = System.Windows.Forms.DataGridViewTriState.False;
-            this.colIcon.Width = 16;
-            // 
             // colId
             // 
             this.colId.DataPropertyName = "Id";
             // 
             this.ticketMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.newTicketToolStripMenuItem,
-            this.setFixedToolStripMenuItem});
+            this.setFixedToolStripMenuItem,
+            this.editToolStripMenuItem});
             this.ticketMenu.Name = "ticketMenu";
-            this.ticketMenu.Size = new System.Drawing.Size(143, 48);
-            // 
-            // newTicketToolStripMenuItem
-            // 
-            this.newTicketToolStripMenuItem.Name = "newTicketToolStripMenuItem";
-            this.newTicketToolStripMenuItem.Size = new System.Drawing.Size(142, 22);
-            this.newTicketToolStripMenuItem.Text = "New Ticket...";
-            this.newTicketToolStripMenuItem.Click += new System.EventHandler(this.newTicketToolStripMenuItem_Click);
-            // 
-            // setFixedToolStripMenuItem
-            // 
-            this.setFixedToolStripMenuItem.Name = "setFixedToolStripMenuItem";
-            this.setFixedToolStripMenuItem.Size = new System.Drawing.Size(142, 22);
-            this.setFixedToolStripMenuItem.Text = "Set Fixed";
-            this.setFixedToolStripMenuItem.Click += new System.EventHandler(this.setFixedToolStripMenuItem_Click);
+            this.ticketMenu.Size = new System.Drawing.Size(153, 92);
             // 
             // lblResults
             // 
             // 
             this.cmbTicketQuery.AutoToolTip = true;
             this.cmbTicketQuery.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cmbTicketQuery.Items.AddRange(new object[] {
+            "My Active Tickets"});
             this.cmbTicketQuery.Name = "cmbTicketQuery";
             this.cmbTicketQuery.Size = new System.Drawing.Size(150, 25);
             // 
-            // cmbServer
-            // 
-            this.cmbServer.AutoToolTip = true;
-            this.cmbServer.Enabled = false;
-            this.cmbServer.Name = "cmbServer";
-            this.cmbServer.Size = new System.Drawing.Size(250, 25);
-            // 
             // searchTextBox
             // 
             this.searchTextBox.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
             this.searchTextBox.Name = "searchTextBox";
             this.searchTextBox.Size = new System.Drawing.Size(100, 25);
+            this.searchTextBox.TextChanged += new System.EventHandler(this.searchTextBox_TextChanged);
             // 
             // toolStrip1
             // 
             this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
             this.btnRefresh,
             this.toolStripSeparator1,
-            this.cmbServer,
             this.cmbTicketQuery,
             this.searchTextBox,
             this.searchLabel,
             this.btnNew,
-            this.btnSetFixed});
+            this.btnSetFixed,
+            this.btnEdit});
             this.toolStrip1.Location = new System.Drawing.Point(0, 0);
             this.toolStrip1.Name = "toolStrip1";
             this.toolStrip1.Padding = new System.Windows.Forms.Padding(0);
             this.toolStrip1.Stretch = true;
             this.toolStrip1.TabIndex = 0;
             // 
-            // btnRefresh
-            // 
-            this.btnRefresh.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-            this.btnRefresh.Image = ((System.Drawing.Image)(resources.GetObject("btnRefresh.Image")));
-            this.btnRefresh.ImageTransparentColor = System.Drawing.Color.Magenta;
-            this.btnRefresh.Name = "btnRefresh";
-            this.btnRefresh.Size = new System.Drawing.Size(23, 22);
-            this.btnRefresh.Text = "Refresh";
-            // 
             // toolStripSeparator1
             // 
             this.toolStripSeparator1.Name = "toolStripSeparator1";
             this.searchLabel.Size = new System.Drawing.Size(42, 22);
             this.searchLabel.Text = "Search";
             // 
-            // btnNew
-            // 
-            this.btnNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-            this.btnNew.Image = ((System.Drawing.Image)(resources.GetObject("btnNew.Image")));
-            this.btnNew.ImageTransparentColor = System.Drawing.Color.Magenta;
-            this.btnNew.Name = "btnNew";
-            this.btnNew.Size = new System.Drawing.Size(23, 22);
-            this.btnNew.Text = "toolStripButton1";
-            this.btnNew.Click += new System.EventHandler(this.btnNew_Click);
-            // 
-            // btnSetFixed
-            // 
-            this.btnSetFixed.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-            this.btnSetFixed.Image = ((System.Drawing.Image)(resources.GetObject("btnSetFixed.Image")));
-            this.btnSetFixed.ImageTransparentColor = System.Drawing.Color.Magenta;
-            this.btnSetFixed.Name = "btnSetFixed";
-            this.btnSetFixed.Size = new System.Drawing.Size(23, 22);
-            this.btnSetFixed.Text = "Fixed";
-            this.btnSetFixed.Click += new System.EventHandler(this.btnSetFixed_Click);
-            // 
             // toolStripContainer1
             // 
             // 
             // 
             this.toolStripContainer1.TopToolStripPanel.Controls.Add(this.toolStrip1);
             // 
+            // dataGridViewImageColumn1
+            // 
+            this.dataGridViewImageColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
+            this.dataGridViewImageColumn1.DataPropertyName = "Icon";
+            this.dataGridViewImageColumn1.HeaderText = "";
+            this.dataGridViewImageColumn1.Image = ((System.Drawing.Image)(resources.GetObject("dataGridViewImageColumn1.Image")));
+            this.dataGridViewImageColumn1.Name = "dataGridViewImageColumn1";
+            this.dataGridViewImageColumn1.ReadOnly = true;
+            this.dataGridViewImageColumn1.Resizable = System.Windows.Forms.DataGridViewTriState.False;
+            this.dataGridViewImageColumn1.Width = 16;
+            // 
+            // colIcon
+            // 
+            this.colIcon.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
+            this.colIcon.DataPropertyName = "Icon";
+            this.colIcon.HeaderText = "";
+            this.colIcon.Image = ((System.Drawing.Image)(resources.GetObject("colIcon.Image")));
+            this.colIcon.Name = "colIcon";
+            this.colIcon.ReadOnly = true;
+            this.colIcon.Resizable = System.Windows.Forms.DataGridViewTriState.False;
+            this.colIcon.Width = 16;
+            // 
+            // newTicketToolStripMenuItem
+            // 
+            this.newTicketToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("newTicketToolStripMenuItem.Image")));
+            this.newTicketToolStripMenuItem.Name = "newTicketToolStripMenuItem";
+            this.newTicketToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+            this.newTicketToolStripMenuItem.Text = "New Ticket...";
+            this.newTicketToolStripMenuItem.Click += new System.EventHandler(this.newTicketToolStripMenuItem_Click);
+            // 
+            // setFixedToolStripMenuItem
+            // 
+            this.setFixedToolStripMenuItem.Image = global::TracVS.Properties.Resources.gear_ok;
+            this.setFixedToolStripMenuItem.Name = "setFixedToolStripMenuItem";
+            this.setFixedToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+            this.setFixedToolStripMenuItem.Text = "Set Fixed";
+            this.setFixedToolStripMenuItem.Click += new System.EventHandler(this.setFixedToolStripMenuItem_Click);
+            // 
+            // editToolStripMenuItem
+            // 
+            this.editToolStripMenuItem.Image = global::TracVS.Properties.Resources.edit;
+            this.editToolStripMenuItem.Name = "editToolStripMenuItem";
+            this.editToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+            this.editToolStripMenuItem.Text = "Modify";
+            this.editToolStripMenuItem.Click += new System.EventHandler(this.editToolStripMenuItem_Click);
+            // 
+            // btnRefresh
+            // 
+            this.btnRefresh.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.btnRefresh.Image = ((System.Drawing.Image)(resources.GetObject("btnRefresh.Image")));
+            this.btnRefresh.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnRefresh.Name = "btnRefresh";
+            this.btnRefresh.Size = new System.Drawing.Size(23, 22);
+            this.btnRefresh.Text = "Refresh";
+            this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click);
+            // 
+            // btnNew
+            // 
+            this.btnNew.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.btnNew.Image = ((System.Drawing.Image)(resources.GetObject("btnNew.Image")));
+            this.btnNew.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnNew.Name = "btnNew";
+            this.btnNew.Size = new System.Drawing.Size(23, 22);
+            this.btnNew.Text = "toolStripButton1";
+            this.btnNew.Click += new System.EventHandler(this.btnNew_Click);
+            // 
+            // btnSetFixed
+            // 
+            this.btnSetFixed.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.btnSetFixed.Image = global::TracVS.Properties.Resources.gear_ok;
+            this.btnSetFixed.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnSetFixed.Name = "btnSetFixed";
+            this.btnSetFixed.Size = new System.Drawing.Size(23, 22);
+            this.btnSetFixed.Text = "Fixed";
+            this.btnSetFixed.Click += new System.EventHandler(this.btnSetFixed_Click);
+            // 
+            // btnEdit
+            // 
+            this.btnEdit.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+            this.btnEdit.Image = global::TracVS.Properties.Resources.edit;
+            this.btnEdit.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.btnEdit.Name = "btnEdit";
+            this.btnEdit.Size = new System.Drawing.Size(23, 22);
+            this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click);
+            // 
             // TicketsView
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
         private System.Windows.Forms.Panel panel2;
         private System.Windows.Forms.Panel panel1;
         private System.Windows.Forms.ToolStripComboBox cmbTicketQuery;
-        private System.Windows.Forms.ToolStripComboBox cmbServer;
         private System.Windows.Forms.ToolStripTextBox searchTextBox;
         private System.Windows.Forms.ToolStrip toolStrip1;
         private System.Windows.Forms.ToolStripButton btnRefresh;
         private System.Windows.Forms.ToolStripMenuItem setFixedToolStripMenuItem;
         private System.Windows.Forms.ToolStripButton btnNew;
         private System.Windows.Forms.ToolStripButton btnSetFixed;
+        private System.Windows.Forms.DataGridViewImageColumn dataGridViewImageColumn1;
+        private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem;
+        private System.Windows.Forms.ToolStripButton btnEdit;
 
     }
 }

TracVS/TicketsView.cs

             set;
         }
 
+        public string[] Resolutions
+        {
+            get;
+            set;
+        }
+
+
+        private IList<Ticket> TicketCache;
         
         public event Action<Ticket> TicketCreated;
         public event Action<int, string> TicketFixed;
+        public event Action<int, Ticket, string> TicketModified;
         public event Action TicketsRefresh;
 
         public TicketsView()
         
         public void ShowTickets(IList<Ticket> tickets)
         {
+            this.TicketCache = tickets;
             dgTickets.AutoGenerateColumns = false;            
             lblResults.Text = string.Format(CultureInfo.InvariantCulture, "{0} Tickets", tickets.Count);            
             dgTickets.DataSource = tickets;
+            cmbTicketQuery.SelectedIndex = 0;
         }
 
         private void btnNew_Click(object sender, EventArgs e)
             }
         }
 
+        private void btnRefresh_Click(object sender, EventArgs e)
+        {
+            this.TicketsRefresh();
+        }
+
+        private void searchTextBox_TextChanged(object sender, EventArgs e)
+        {
+            if (searchTextBox.Text != "")
+            {
+                dgTickets.DataSource = (from item in this.TicketCache where (item.Summary as string).ToLower().Contains(searchTextBox.Text.ToLower()) select item).ToList();
+            }
+            else
+            {
+                dgTickets.DataSource = this.TicketCache;
+            }
+            
+        }
+
+        private void btnEdit_Click(object sender, EventArgs e)
+        {
+            if (dgTickets.SelectedRows.Count > 0)
+            {                
+                int id = (int)dgTickets.SelectedRows[0].Cells[2].Value;
+                var ticket = (from item in this.TicketCache where item.Id == id select item).First();
+
+                var form = new EditTicket(id, ticket, this.Types, this.Components, this.Versions, this.Severities, this.Priorities, this.Resolutions);
+                if (form.ShowDialog() == DialogResult.OK)
+                {
+                    this.TicketModified(id, form.Ticket, form.Comment);
+                }
+            }
+        }
+
+        private void editToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            this.btnEdit.PerformClick();
+        }
+
     }
 }

TracVS/TicketsView.resx

     <value>True</value>
   </metadata>
   <metadata name="ticketMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>975, 17</value>
+    <value>348, 17</value>
   </metadata>
+  <data name="newTicketToolStripMenuItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
+        DAAACwwBP0AiyAAAACp0RVh0Q3JlYXRpb24gVGltZQBNaSAxIE9rdCAyMDAzIDAwOjA5OjE0ICswMTAw
+        15gkuQAAAAd0SU1FB9MKBhQKHixqXRkAAAJ8SURBVDhPhZPrS1NxGMePbmfz7NQWOsXsRWktX1WiUWh0
+        EdTIIAhDKmNN21BfdDEsdV5mw825pSFiEQa9iCwR/wkpMKKdga28psYKEVZGt5ffnue4mZjhgQ+/3+E8
+        1+/zHEFY96QNGIJ5I3uRO2xBztBu7B/MhCmgf0VmGYR+vf0/7+b7sjL8uxePv7vwcPk2XHPnsdWpC5Kh
+        jUjfNEBKv0F5/qsbvV9q4F+y4uZECeR6USHHJmLn/wIk0AeV5D5JGfwZQE/UDt/iRdS9L4ZcJ4boWzOx
+        K24XOwXB/EgKmh8YlOR+SWHn1D7569MfXQgs2dDxuZwqKIbRo4/KjeK47NKF5HZRkdq0XNF2VZPcEQu4
+        Zy6bM7PzwLIT3sULuBMpg3OuFN5IBe5+qoZ3wYqW6TJkdJtAzlWqsDnDe0iwNrVnLpszs7M7cg6tC2fQ
+        MFuC+qkiaqUQ194eQ61SgLSuLRwgQFiEA0NZqtosGPfMZXNmdm78cBK3pouojUJcDx/H1fGjqH6Tj9RO
+        mQP0EtnCvmeZ6IzY0DR7Go0zpWiYOQXnPJ2UmZ1vvDtBTkfgeJ2PqrFDsL7IQ0qH4W+AbfeSwia3fsLY
+        opukeU+afEnf3B/L1bI5s50ck5yaqK5WExZrNGFtdWJY40gIr7ZAlx2EnXAR7ay2P2JXe+ayK8cOQ3Qk
+        8hifEF6ilWhZFVEdxcqaZhJZUrsY6pi/pArGPV9+eRDalQAeoiBmx/uwMsbYs7pIklurNE+dVdVmwSpG
+        c6G5ksABNl6keIT4qXdplPQeI1L9Msw+A5I9EhIrhU1XeW0cLo2XhOfMo2L8hI3Y/Gdao4mF7tkx+L7h
+        7/wH8sc3cyNswigAAAAASUVORK5CYII=
+</value>
+  </data>
   <metadata name="imgTickets.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>760, 17</value>
+    <value>133, 17</value>
   </metadata>
   <data name="imgTickets.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
     <value>
         AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
         LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACc
-        CwAAAk1TRnQBSQFMAgEBAwEAAXwBAAF8AQABDAEAAQwBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAEw
-        AwABDAMAAQEBAAEgBgABCYYAATYBlQEvAf8BDAFsAQwB/0QAAYoBxAHfAf8BigHEAd8B/wGKAcQB3wH/
+        CwAAAk1TRnQBSQFMAgEBAwEAAewBAAHsAQABDAEAAQwBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAEw
+        AwABDAMAAQEBAAEgBgABCYYAASgBlQEhAf8BAAFeAQAB/0QAAYoBxAHfAf8BigHEAd8B/wGKAcQB3wH/
         AYoBxAHfAf8BigHEAd8B/wGKAcQB3wH/AYoBxAHfAf8BigHEAd8B/wGKAcQB3wH/AYoBxAHfAf8BigHE
         Ad8B/wQAAYoBxAHfAf8BigHEAd8B/wGKAcQB3wH/AYoBxAHfAf8BigHEAd8B/wGKAcQB3wH/AYoBxAHf
         Af8BigHEAd8B/wGKAcQB3wH/AYoBxAHfAf8BigHEAd8B/wQAAYoBxAHfAf8BigHEAd8B/wGKAcQB3wH/
-        AYoBxAHfAf8BigHEAd8B/wE2AZUBLwH/AQwBgQEMAf8BDAFsAQwB/wGKAcQB3wH/AYoBxAHfAf8BigHE
+        AYoBxAHfAf8BigHEAd8B/wEoAZUBIQH/AQABgQEAAf8BAAFeAQAB/wGKAcQB3wH/AYoBxAHfAf8BigHE
         Ad8B/zQAAYoBxAHfAf8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5
         Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BigHEAd8B/wGKAcQB3wH/AYoBxAHfAf8BhQH1AfkB/wGF
         AfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5
-        Af8BigHEAd8B/wGKAcQB3wH/AYoBxAHfAf8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BNgGVAS8B/wEM
-        AYEBDAH/AQwBbAEMAf8BDAGBAQwB/wEMAWwBDAH/AYUB9QH5Af8BigHEAd8B/wGKAcQB3wH/MAABigHE
-        Ad8B/wGFAfUB+QH/AUkBoAHLAf8BSQGgAcsB/wFJAaABywH/AUkBoAHLAf8BSQGgAcsB/wFJAaABywH/
-        AUkBoAHLAf8BhQH1AfkB/wGFAfUB+QH/BAABigHEAd8B/wGFAfUB+QH/AwwB/wMMAf8DDAH/AwwB/wMM
-        Af8DDAH/AwwB/wGFAfUB+QH/AYUB9QH5Af8EAAGKAcQB3wH/AYUB9QH5Af8BSQGgAcsB/wFJAaABywH/
-        ATYBlQEvAf8BDAFsAQwB/wFJAaABywH/ATYBlQEvAf8BDAGBAQwB/wEMAWwBDAH/AYUB9QH5Af80AAGK
+        Af8BigHEAd8B/wGKAcQB3wH/AYoBxAHfAf8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BKAGVASEB/wEA
+        AYEBAAH/AQABXgEAAf8BAAGBAQAB/wEAAV4BAAH/AYUB9QH5Af8BigHEAd8B/wGKAcQB3wH/MAABigHE
+        Ad8B/wGFAfUB+QH/ATsBoAHLAf8BOwGgAcsB/wE7AaABywH/ATsBoAHLAf8BOwGgAcsB/wE7AaABywH/
+        ATsBoAHLAf8BhQH1AfkB/wGFAfUB+QH/BAABigHEAd8B/wGFAfUB+QH/AwAB/wMAAf8DAAH/AwAB/wMA
+        Af8DAAH/AwAB/wGFAfUB+QH/AYUB9QH5Af8EAAGKAcQB3wH/AYUB9QH5Af8BOwGgAcsB/wE7AaABywH/
+        ASgBlQEhAf8BAAFeAQAB/wE7AaABywH/ASgBlQEhAf8BAAGBAQAB/wEAAV4BAAH/AYUB9QH5Af80AAGK
         AcQB3wH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5
         Af8BhQH1AfkB/wGFAfUB+QH/AYEB5QHwAf8BigHEAd8B/wGKAcQB3wH/AYUB9QH5Af8BhQH1AfkB/wGF
         AfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYEB5QHw
-        Af8BigHEAd8B/wGKAcQB3wH/AYUB9QH5Af8BhQH1AfkB/wE2AZUBLwH/AQwBgQEMAf8BDAFsAQwB/wGF
-        AfUB+QH/AYUB9QH5Af8BNgGVAS8B/wEMAYEBDAH/AQwBbAEMAf8BigHEAd8B/zAAAYoBxAHfAf8BhQH1
-        AfkB/wFJAaABywH/AUkBoAHLAf8BSQGgAcsB/wFJAaABywH/AUkBoAHLAf8BhQH1AfkB/wGFAfUB+QH/
-        AYUB9QH5Af8BhQH1AfkB/wQAAYoBxAHfAf8BhQH1AfkB/wEMAWwBDAH/AQwBbAEMAf8BDAFsAQwB/wEM
-        AWwBDAH/AQwBbAEMAf8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wQAAYoBxAHfAf8BhQH1
-        AfkB/wFJAaABywH/ATYBlQEvAf8BNgGVAS8B/wFJAaABywH/AUkBoAHLAf8BhQH1AfkB/wGFAfUB+QH/
-        ATYBlQEvAf8BDAGBAQwB/wEMAWwBDAH/MAABigHEAd8B/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGF
+        Af8BigHEAd8B/wGKAcQB3wH/AYUB9QH5Af8BhQH1AfkB/wEoAZUBIQH/AQABgQEAAf8BAAFeAQAB/wGF
+        AfUB+QH/AYUB9QH5Af8BKAGVASEB/wEAAYEBAAH/AQABXgEAAf8BigHEAd8B/zAAAYoBxAHfAf8BhQH1
+        AfkB/wE7AaABywH/ATsBoAHLAf8BOwGgAcsB/wE7AaABywH/ATsBoAHLAf8BhQH1AfkB/wGFAfUB+QH/
+        AYUB9QH5Af8BhQH1AfkB/wQAAYoBxAHfAf8BhQH1AfkB/wEAAV4BAAH/AQABXgEAAf8BAAFeAQAB/wEA
+        AV4BAAH/AQABXgEAAf8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wQAAYoBxAHfAf8BhQH1
+        AfkB/wE7AaABywH/ASgBlQEhAf8BKAGVASEB/wE7AaABywH/ATsBoAHLAf8BhQH1AfkB/wGFAfUB+QH/
+        ASgBlQEhAf8BAAGBAQAB/wEAAV4BAAH/MAABigHEAd8B/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGF
         AfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGBAeUB8AH/AYoBxAHf
         Af8BigHEAd8B/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGF
         AfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGBAeUB8AH/AYoBxAHfAf8BigHEAd8B/wGFAfUB+QH/AYUB9QH5
-        Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wE2
-        AZUBLwH/AYoBxAHfAf8wAAGKAcQB3wH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1
+        Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wEo
+        AZUBIQH/AYoBxAHfAf8wAAGKAcQB3wH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1
         AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8EAAGKAcQB3wH/AYUB9QH5
         Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGF
         AfUB+QH/AYUB9QH5Af8EAAGKAcQB3wH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1
         AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af80AAGKAcQB3wH/AYUB9QH5
-        Af8BSQGgAcsB/wFJAaABywH/AUkBoAHLAf8BSQGgAcsB/wGFAfUB+QH/AUkBoAHLAf8BSQGgAcsB/wGF
-        AfUB+QH/AYEB5QHwAf8BigHEAd8B/wGKAcQB3wH/AYUB9QH5Af8BSQGgAcsB/wFJAaABywH/AUkBoAHL
-        Af8BSQGgAcsB/wGFAfUB+QH/AUkBoAHLAf8BSQGgAcsB/wGFAfUB+QH/AYEB5QHwAf8BigHEAd8B/wGK
-        AcQB3wH/AYUB9QH5Af8BSQGgAcsB/wFJAaABywH/AUkBoAHLAf8BSQGgAcsB/wGFAfUB+QH/AUkBoAHL
-        Af8BSQGgAcsB/wGFAfUB+QH/AYEB5QHwAf8BigHEAd8B/zAAAYoBxAHfAf8BhQH1AfkB/wGFAfUB+QH/
+        Af8BOwGgAcsB/wE7AaABywH/ATsBoAHLAf8BOwGgAcsB/wGFAfUB+QH/ATsBoAHLAf8BOwGgAcsB/wGF
+        AfUB+QH/AYEB5QHwAf8BigHEAd8B/wGKAcQB3wH/AYUB9QH5Af8BOwGgAcsB/wE7AaABywH/ATsBoAHL
+        Af8BOwGgAcsB/wGFAfUB+QH/ATsBoAHLAf8BOwGgAcsB/wGFAfUB+QH/AYEB5QHwAf8BigHEAd8B/wGK
+        AcQB3wH/AYUB9QH5Af8BOwGgAcsB/wE7AaABywH/ATsBoAHLAf8BOwGgAcsB/wGFAfUB+QH/ATsBoAHL
+        Af8BOwGgAcsB/wGFAfUB+QH/AYEB5QHwAf8BigHEAd8B/zAAAYoBxAHfAf8BhQH1AfkB/wGFAfUB+QH/
         AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1
         AfkB/wQAAYoBxAHfAf8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5
         Af8BhQH1AfkB/wGFAfUB+QH/AYUB9QH5Af8BhQH1AfkB/wQAAYoBxAHfAf8BhQH1AfkB/wGFAfUB+QH/
 </value>
   </data>
   <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>870, 17</value>
+    <value>243, 17</value>
   </metadata>
   <data name="btnRefresh.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
         AAAASUVORK5CYII=
 </value>
   </data>
-  <data name="btnSetFixed.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+  <data name="dataGridViewImageColumn1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
-        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ5SURBVDhPjZJdSJNRGMePSKSUgd4ZZSSJRTUWVBcplSkk
-        SQbemIVhJAuq4WYXfrTcWuTeEZhkfpCJMAtpWdNqzFrEmNUCU6MssLVGUpEwvNqEObd/zzl7rdSQDvyu
-        3uf/O897nocxOlLHIDiXWx4LLjb1C2qkPoHG2ItSlVFFpalEIs8sODy83OGChqYB5BWdqqNg+hLJYkEs
-        FkOUmJ2LIRyJig4mJkNCsr+oon6xJMHU7ljSAJdEon8EXDIPCQ7LvyP+JMHQPPBPwZws4Z3MhOfwczqI
-        an1LjDJGInP+HRIM12xC8GbUj+ERPzzDfnzyT6HB1YjjgyUoHMhFYV8BGl+YYXvqAQWbiWx+ebwDWcDb
-        5oQjYVS4jqHNp0X9+0MocW9BjmMdMq0pULbuBs3hOuU2/xbom+IduF5+xtj4d7r5CoWrcWZ0F054FCh6
-        noVsWzJuvL2KMmcxWA7rofBOYoXooN58TwiGPF58+RpAqb0Y6pF8HHCm44grC4qHq3BnokvU6MZOg1Um
-        eyl3lEgTglrTXfHRTYLJb9MoeLAHlU/K8eyjCxvvJ6LXGw+bxtVgrQxMvTpEuQvEBiHQGHpEgXPIS48X
-        wEFrPnIfKRAMhICZ+ICkD1VgNykspYGVp/ooJxGbhKBKbxFFdrcPr9/9QJ3DiLW9Kdhn3wZaBkjjFO6g
-        ML9dowRTMuuCDlQ1nUIwFZwVTIdmsPd2nrhxpYVC7YR5DZhWge26XNDwLCQom38DdlbXCXVDF3FLoDV2
-        o5/mXdmtQcalrUjSZmB97Q6cbDsHm/MV34PWv6fAf4M/xnl5QfiMl6NZruUZsUj8JMkSvl3/Aw/zDPsF
-        +LgAFDN9sJgAAAAASUVORK5CYII=
+        iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA
+        CukB/XXO0wAAAFhJREFUKFNj+P//PwMpmOH+ka7/pGCwhp9fW4nCIJfANZxe4PwfGYMMgfFB7A9PK8Eu
+        Id8GQs7CsAHdSSA+uiEofqCKDcieBhlIkg2wuCIp4sA2kJIsQGoBEvLKzl5N9bsAAAAASUVORK5CYII=
 </value>
   </data>
 </root>

TracVS/TracVS.csproj

     <WarningLevel>4</WarningLevel>
     <IncrementalBuild>false</IncrementalBuild>
     <DocumentationFile>TracVS.xml</DocumentationFile>
+    <RegisterForComInterop>false</RegisterForComInterop>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <DebugSymbols>false</DebugSymbols>
     <WarningLevel>4</WarningLevel>
     <IncrementalBuild>false</IncrementalBuild>
     <DocumentationFile>TracVS.xml</DocumentationFile>
+    <RegisterForComInterop>false</RegisterForComInterop>
   </PropertyGroup>
   <PropertyGroup>
     <RootNamespace>TracVS</RootNamespace>
     <Compile Include="Connect.cs">
       <SubType>Code</SubType>
     </Compile>
+    <Compile Include="Constants.cs" />
+    <Compile Include="EditTicket.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="EditTicket.Designer.cs">
+      <DependentUpon>EditTicket.cs</DependentUpon>
+    </Compile>
     <Compile Include="ITrac.cs" />
     <Compile Include="Logon.cs">
       <SubType>Form</SubType>
       <DependentUpon>Resources.resx</DependentUpon>
     </Compile>
     <Compile Include="Ticket.cs" />
-    <Compile Include="TicketFixed.cs">
+    <Compile Include="TicketFixing.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="TicketFixed.Designer.cs">
-      <DependentUpon>TicketFixed.cs</DependentUpon>
+    <Compile Include="TicketFixing.Designer.cs">
+      <DependentUpon>TicketFixing.cs</DependentUpon>
     </Compile>
     <Compile Include="TicketsView.cs">
       <SubType>UserControl</SubType>
     </Content>
     <None Include="Resources\TracVS-icon-small.png" />
     <None Include="Resources\1.bmp" />
+    <None Include="Resources\add2.png" />
+    <None Include="Resources\gear_ok.png" />
+    <None Include="Resources\document_text.png" />
+    <None Include="Resources\edit.png" />
     <Content Include="TracVS.AddIn">
       <SubType>Designer</SubType>
     </Content>
     <None Include="packages.config" />
   </ItemGroup>
   <ItemGroup>
+    <EmbeddedResource Include="EditTicket.resx">
+      <DependentUpon>EditTicket.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="Logon.resx">
       <DependentUpon>Logon.cs</DependentUpon>
     </EmbeddedResource>
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
     </EmbeddedResource>
-    <EmbeddedResource Include="TicketFixed.resx">
-      <DependentUpon>TicketFixed.cs</DependentUpon>
+    <EmbeddedResource Include="TicketFixing.resx">
+      <DependentUpon>TicketFixing.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="TicketsView.resx">
       <DependentUpon>TicketsView.cs</DependentUpon>

TracVS/TracVS.xml

             the contents of this method with the code editor.
             </summary>
         </member>
-        <member name="F:TracVS.TicketFixing.components">
-            <summary>
-            Required designer variable.
-            </summary>
-        </member>
-        <member name="M:TracVS.TicketFixing.Dispose(System.Boolean)">
-            <summary>
-            Clean up any resources being used.
-            </summary>
-            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        </member>
-        <member name="M:TracVS.TicketFixing.InitializeComponent">
-            <summary>
-            Required method for Designer support - do not modify
-            the contents of this method with the code editor.
-            </summary>
-        </member>
         <member name="T:TracVS.Properties.Resources">
             <summary>
               A strongly-typed resource class, for looking up localized strings, etc.
             <param term='handled'>Informs the caller if the command was handled or not.</param>
             <seealso class='Exec' />
         </member>
+        <member name="F:TracVS.EditTicket.components">
+            <summary>
+            Required designer variable.
+            </summary>
+        </member>
+        <member name="M:TracVS.EditTicket.Dispose(System.Boolean)">
+            <summary>
+            Clean up any resources being used.
+            </summary>
+            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        </member>
+        <member name="M:TracVS.EditTicket.InitializeComponent">
+            <summary>
+            Required method for Designer support - do not modify
+            the contents of this method with the code editor.
+            </summary>
+        </member>
+        <member name="F:TracVS.TicketFixing.components">
+            <summary>
+            Required designer variable.
+            </summary>
+        </member>
+        <member name="M:TracVS.TicketFixing.Dispose(System.Boolean)">
+            <summary>
+            Clean up any resources being used.
+            </summary>
+            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        </member>
+        <member name="M:TracVS.TicketFixing.InitializeComponent">
+            <summary>
+            Required method for Designer support - do not modify
+            the contents of this method with the code editor.
+            </summary>
+        </member>
     </members>
 </doc>

TracVSSetup.exe

Binary file modified.