← Back to team overview

nunit-core team mailing list archive

[Merge] lp:~anuraj.p/nunitv2/GUIFindTest into lp:nunitv2

 

Anuraj P has proposed merging lp:~anuraj.p/nunitv2/GUIFindTest into lp:nunitv2.

Requested reviews:
  NUnit Core Developers (nunit-core)

For more details, see:
https://code.launchpad.net/~anuraj.p/nunitv2/GUIFindTest/+merge/132950
-- 
https://code.launchpad.net/~anuraj.p/nunitv2/GUIFindTest/+merge/132950
Your team NUnit Core Developers is requested to review the proposed merge of lp:~anuraj.p/nunitv2/GUIFindTest into lp:nunitv2.
=== added file 'src/GuiComponents/UiKit/Images/search.png'
Binary files src/GuiComponents/UiKit/Images/search.png	1970-01-01 00:00:00 +0000 and src/GuiComponents/UiKit/Images/search.png	2012-11-05 19:33:19 +0000 differ
=== modified file 'src/GuiComponents/UiKit/TestTree.cs'
--- src/GuiComponents/UiKit/TestTree.cs	2012-07-21 20:00:21 +0000
+++ src/GuiComponents/UiKit/TestTree.cs	2012-11-05 19:33:19 +0000
@@ -1,133 +1,132 @@
-// ****************************************************************
-// This is free software licensed under the NUnit license. You
-// may obtain a copy of the license as well as information regarding
-// copyright ownership at http://nunit.org.
-// ****************************************************************
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Windows.Forms;
-using NUnit.Core;
-using NUnit.Util;
-
-namespace NUnit.UiKit
-{
-	public delegate void SelectedTestsChangedEventHandler(object sender, SelectedTestsChangedEventArgs e);
-	/// <summary>
-	/// Summary description for TestTree.
-	/// </summary>
-	public class TestTree : System.Windows.Forms.UserControl
-	{
-		#region Instance Variables
-
-		// Contains all available categories, whether
-		// selected or not. Unselected members of this
-		// list are displayed in selectedList
-		private IList availableCategories = new List<string>();
-
-		// Our test loader
-		private TestLoader loader;
-
-		private System.Windows.Forms.TabControl tabs;
-		private System.Windows.Forms.TabPage testPage;
-		private System.Windows.Forms.TabPage categoryPage;
-		private System.Windows.Forms.Panel testPanel;
-		private System.Windows.Forms.Panel categoryPanel;
-		private System.Windows.Forms.Panel treePanel;
-		private System.Windows.Forms.Panel buttonPanel;
-		private NUnit.UiKit.TestSuiteTreeView tests;
-		private System.Windows.Forms.GroupBox groupBox1;
-		private System.Windows.Forms.ListBox availableList;
-		private System.Windows.Forms.GroupBox selectedCategories;
-		private System.Windows.Forms.ListBox selectedList;
-		private System.Windows.Forms.Panel categoryButtonPanel;
-		private System.Windows.Forms.Button addCategory;
-		private System.Windows.Forms.Button removeCategory;
-		private System.Windows.Forms.Button clearAllButton;
-		private System.Windows.Forms.Button checkFailedButton;
-		private System.Windows.Forms.MenuItem treeMenu;
-		private System.Windows.Forms.MenuItem checkBoxesMenuItem;
-		private System.Windows.Forms.MenuItem treeMenuSeparatorItem1;
-		private System.Windows.Forms.MenuItem expandMenuItem;
-		private System.Windows.Forms.MenuItem collapseMenuItem;
-		private System.Windows.Forms.MenuItem treeMenuSeparatorItem2;
-		private System.Windows.Forms.MenuItem expandAllMenuItem;
-		private System.Windows.Forms.MenuItem collapseAllMenuItem;
-		private System.Windows.Forms.MenuItem hideTestsMenuItem;
-		private System.Windows.Forms.MenuItem treeMenuSeparatorItem3;
-		private System.Windows.Forms.MenuItem propertiesMenuItem;
-		private System.Windows.Forms.CheckBox excludeCheckbox;
-
-		/// <summary> 
-		/// Required designer variable.
-		/// </summary>
-		private System.ComponentModel.Container components = null;
-
-		#endregion
-
-		#region Properties
-
-		public MenuItem TreeMenu 
-		{
-			get { return treeMenu; }
-		}
-
-		public string[] SelectedCategories
-		{
-			get
-			{
-				int n = this.selectedList.Items.Count;
-				string[] categories = new string[n];
-				for( int i = 0; i < n; i++ )
-					categories[i] = this.selectedList.Items[i].ToString();
-				return categories;
-			}
-		}
-
-		[Browsable(false)]
-		public bool ShowCheckBoxes
-		{
-			get { return tests.CheckBoxes; }
-			set 
-			{ 
-				tests.CheckBoxes = value;
-				buttonPanel.Visible	= value;
-				clearAllButton.Visible = value;
-				checkFailedButton.Visible = value;
-				checkBoxesMenuItem.Checked = value;
-			}
-		}
-		#endregion
-
-		#region Construction and Initialization
-
-		public TestTree()
-		{
-			// This call is required by the Windows.Forms Form Designer.
-			InitializeComponent();
-			treeMenu = new MenuItem();
-			this.checkBoxesMenuItem = new System.Windows.Forms.MenuItem();
-			this.treeMenuSeparatorItem1 = new System.Windows.Forms.MenuItem();
-			this.expandMenuItem = new System.Windows.Forms.MenuItem();
-			this.collapseMenuItem = new System.Windows.Forms.MenuItem();
-			this.treeMenuSeparatorItem2 = new System.Windows.Forms.MenuItem();
-			this.expandAllMenuItem = new System.Windows.Forms.MenuItem();
-			this.collapseAllMenuItem = new System.Windows.Forms.MenuItem();
-			this.hideTestsMenuItem = new System.Windows.Forms.MenuItem();
-			this.treeMenuSeparatorItem3 = new System.Windows.Forms.MenuItem();
-			this.propertiesMenuItem = new System.Windows.Forms.MenuItem();
-
-			// 
-			// treeMenu
-			// 
-			this.treeMenu.MergeType = MenuMerge.Add;
-			this.treeMenu.MergeOrder = 1;
-			this.treeMenu.MenuItems.AddRange(
-				new System.Windows.Forms.MenuItem[] 
+// ****************************************************************
+// This is free software licensed under the NUnit license. You
+// may obtain a copy of the license as well as information regarding
+// copyright ownership at http://nunit.org.
+// ****************************************************************
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Windows.Forms;
+using NUnit.Core;
+using NUnit.Util;
+
+namespace NUnit.UiKit
+{
+    public delegate void SelectedTestsChangedEventHandler(object sender, SelectedTestsChangedEventArgs e);
+    /// <summary>
+    /// Summary description for TestTree.
+    /// </summary>
+    public class TestTree : System.Windows.Forms.UserControl
+    {
+        #region Instance Variables
+
+        // Contains all available categories, whether
+        // selected or not. Unselected members of this
+        // list are displayed in selectedList
+        private IList availableCategories = new List<string>();
+
+        // Our test loader
+        private TestLoader loader;
+
+        private System.Windows.Forms.TabControl tabs;
+        private System.Windows.Forms.TabPage testPage;
+        private System.Windows.Forms.TabPage categoryPage;
+        private System.Windows.Forms.Panel testPanel;
+        private System.Windows.Forms.Panel categoryPanel;
+        private System.Windows.Forms.Panel buttonPanel;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.ListBox availableList;
+        private System.Windows.Forms.GroupBox selectedCategories;
+        private System.Windows.Forms.ListBox selectedList;
+        private System.Windows.Forms.Panel categoryButtonPanel;
+        private System.Windows.Forms.Button addCategory;
+        private System.Windows.Forms.Button removeCategory;
+        private System.Windows.Forms.Button clearAllButton;
+        private System.Windows.Forms.Button checkFailedButton;
+        private System.Windows.Forms.MenuItem treeMenu;
+        private System.Windows.Forms.MenuItem checkBoxesMenuItem;
+        private System.Windows.Forms.MenuItem treeMenuSeparatorItem1;
+        private System.Windows.Forms.MenuItem expandMenuItem;
+        private System.Windows.Forms.MenuItem collapseMenuItem;
+        private System.Windows.Forms.MenuItem treeMenuSeparatorItem2;
+        private System.Windows.Forms.MenuItem expandAllMenuItem;
+        private System.Windows.Forms.MenuItem collapseAllMenuItem;
+        private System.Windows.Forms.MenuItem hideTestsMenuItem;
+        private System.Windows.Forms.MenuItem treeMenuSeparatorItem3;
+        private System.Windows.Forms.MenuItem propertiesMenuItem;
+        private System.Windows.Forms.CheckBox excludeCheckbox;
+
+        #endregion
+        private Panel treePanel;
+        private TestSuiteTreeView tests;
+        private Panel FindTestsPanel;
+        private PictureBox SearchImageButton;
+        private TextBox TestNameTextBox;
+        private IContainer components;
+
+        #region Properties
+
+        public MenuItem TreeMenu
+        {
+            get { return treeMenu; }
+        }
+
+        public string[] SelectedCategories
+        {
+            get
+            {
+                int n = this.selectedList.Items.Count;
+                string[] categories = new string[n];
+                for (int i = 0; i < n; i++)
+                    categories[i] = this.selectedList.Items[i].ToString();
+                return categories;
+            }
+        }
+
+        [Browsable(false)]
+        public bool ShowCheckBoxes
+        {
+            get { return tests.CheckBoxes; }
+            set
+            {
+                tests.CheckBoxes = value;
+                buttonPanel.Visible = value;
+                clearAllButton.Visible = value;
+                checkFailedButton.Visible = value;
+                checkBoxesMenuItem.Checked = value;
+            }
+        }
+        #endregion
+
+        #region Construction and Initialization
+
+        public TestTree()
+        {
+            // This call is required by the Windows.Forms Form Designer.
+            InitializeComponent();
+            treeMenu = new MenuItem();
+            this.checkBoxesMenuItem = new System.Windows.Forms.MenuItem();
+            this.treeMenuSeparatorItem1 = new System.Windows.Forms.MenuItem();
+            this.expandMenuItem = new System.Windows.Forms.MenuItem();
+            this.collapseMenuItem = new System.Windows.Forms.MenuItem();
+            this.treeMenuSeparatorItem2 = new System.Windows.Forms.MenuItem();
+            this.expandAllMenuItem = new System.Windows.Forms.MenuItem();
+            this.collapseAllMenuItem = new System.Windows.Forms.MenuItem();
+            this.hideTestsMenuItem = new System.Windows.Forms.MenuItem();
+            this.treeMenuSeparatorItem3 = new System.Windows.Forms.MenuItem();
+            this.propertiesMenuItem = new System.Windows.Forms.MenuItem();
+
+            // 
+            // treeMenu
+            // 
+            this.treeMenu.MergeType = MenuMerge.Add;
+            this.treeMenu.MergeOrder = 1;
+            this.treeMenu.MenuItems.AddRange(
+                new System.Windows.Forms.MenuItem[] 
 				{
 					this.checkBoxesMenuItem,
 					this.treeMenuSeparatorItem1,
@@ -139,688 +138,815 @@
 					this.hideTestsMenuItem,
 					this.treeMenuSeparatorItem3,
 					this.propertiesMenuItem 
-				} );
-			this.treeMenu.Text = "&Tree";
-			this.treeMenu.Visible = false;
-			this.treeMenu.Popup += new System.EventHandler(this.treeMenu_Popup);
-			// 
-			// checkBoxesMenuItem
-			// 
-			this.checkBoxesMenuItem.Index = 0;
-			this.checkBoxesMenuItem.Text = "Show Check&Boxes";
-			this.checkBoxesMenuItem.Click += new System.EventHandler(this.checkBoxesMenuItem_Click);
-			// 
-			// treeMenuSeparatorItem1
-			// 
-			this.treeMenuSeparatorItem1.Index = 1;
-			this.treeMenuSeparatorItem1.Text = "-";
-			// 
-			// expandMenuItem
-			// 
-			this.expandMenuItem.Index = 2;
-			this.expandMenuItem.Text = "&Expand";
-			this.expandMenuItem.Click += new System.EventHandler(this.expandMenuItem_Click);
-			// 
-			// collapseMenuItem
-			// 
-			this.collapseMenuItem.Index = 3;
-			this.collapseMenuItem.Text = "&Collapse";
-			this.collapseMenuItem.Click += new System.EventHandler(this.collapseMenuItem_Click);
-			// 
-			// treeMenuSeparatorItem2
-			// 
-			this.treeMenuSeparatorItem2.Index = 4;
-			this.treeMenuSeparatorItem2.Text = "-";
-			// 
-			// expandAllMenuItem
-			// 
-			this.expandAllMenuItem.Index = 5;
-			this.expandAllMenuItem.Text = "Expand All";
-			this.expandAllMenuItem.Click += new System.EventHandler(this.expandAllMenuItem_Click);
-			// 
-			// collapseAllMenuItem
-			// 
-			this.collapseAllMenuItem.Index = 6;
-			this.collapseAllMenuItem.Text = "Collapse All";
-			this.collapseAllMenuItem.Click += new System.EventHandler(this.collapseAllMenuItem_Click);
-			// 
-			// hideTestsMenuItem
-			// 
-			this.hideTestsMenuItem.Index = 7;
-			this.hideTestsMenuItem.Text = "Hide Tests";
-			this.hideTestsMenuItem.Click += new System.EventHandler(this.hideTestsMenuItem_Click);
-			// 
-			// treeMenuSeparatorItem3
-			// 
-			this.treeMenuSeparatorItem3.Index = 8;
-			this.treeMenuSeparatorItem3.Text = "-";
-			// 
-			// propertiesMenuItem
-			// 
-			this.propertiesMenuItem.Index = 9;
-			this.propertiesMenuItem.Text = "&Properties";
-			this.propertiesMenuItem.Click += new System.EventHandler(this.propertiesMenuItem_Click);
-
-
-			tests.SelectedTestChanged += new SelectedTestChangedHandler(tests_SelectedTestChanged);
-			tests.CheckedTestChanged += new CheckedTestChangedHandler(tests_CheckedTestChanged);
-
-			this.excludeCheckbox.Enabled = false;
-		}
-
-		protected override void OnLoad(EventArgs e)
-		{
-			if ( !this.DesignMode )
-			{
-				this.ShowCheckBoxes = 
-					Services.UserSettings.GetSetting( "Options.ShowCheckBoxes", false );
-				Initialize( Services.TestLoader );
-				Services.UserSettings.Changed += new SettingsEventHandler(UserSettings_Changed);
-			}
-
-			base.OnLoad (e);
-		}
-
-		public void Initialize(TestLoader loader) 
-		{
-			this.tests.Initialize(loader, loader.Events);
-			this.loader = loader;
-			loader.Events.TestLoaded += new NUnit.Util.TestEventHandler(events_TestLoaded);
-			loader.Events.TestReloaded += new NUnit.Util.TestEventHandler(events_TestReloaded);
-			loader.Events.TestUnloaded += new NUnit.Util.TestEventHandler(events_TestUnloaded);
-		}
-
-		public void SelectCategories( string[] categories, bool exclude )
-		{
-			foreach( string category in categories )
-			{
-				if ( availableCategories.Contains( category ) )
-				{
-					if (!selectedList.Items.Contains(category))
-					{
-						selectedList.Items.Add(category);
-					}
-					availableList.Items.Remove( category );
-
-					this.excludeCheckbox.Checked = exclude;
-				}
-			}
-
-			UpdateCategoryFilter();
-			if (this.SelectedCategories.Length > 0)
-				this.excludeCheckbox.Enabled = true;
-		}
-
-		/// <summary> 
-		/// Clean up any resources being used.
-		/// </summary>
-		protected override void Dispose( bool disposing )
-		{
-			if( disposing )
-			{
-				if(components != null)
-				{
-					components.Dispose();
-				}
-			}
-			base.Dispose( disposing );
-		}
-
-		#endregion
-
-		#region View Menu Handlers
-
-		private void treeMenu_Popup(object sender, System.EventArgs e)
-		{
-			TreeNode selectedNode = tests.SelectedNode;
-			if ( selectedNode != null && selectedNode.Nodes.Count > 0 )
-			{
-				bool isExpanded = selectedNode.IsExpanded;
-				collapseMenuItem.Enabled = isExpanded;
-				expandMenuItem.Enabled = !isExpanded;		
-			}
-			else
-			{
-				collapseMenuItem.Enabled = expandMenuItem.Enabled = false;
-			}
-		}
-
-		private void collapseMenuItem_Click(object sender, System.EventArgs e)
-		{
-			tests.SelectedNode.Collapse();
-		}
-
-		private void expandMenuItem_Click(object sender, System.EventArgs e)
-		{
-			tests.SelectedNode.Expand();
-		}
-
-		private void collapseAllMenuItem_Click(object sender, System.EventArgs e)
-		{
-			tests.BeginUpdate();
-			tests.CollapseAll();
-			tests.EndUpdate();
-
-			// Compensate for a bug in the underlying control
-			if ( tests.Nodes.Count > 0 )
-				tests.SelectedNode = tests.Nodes[0];	
-		}
-
-		private void hideTestsMenuItem_Click(object sender, System.EventArgs e)
-		{
-			tests.HideTests();
-		}
-
-		private void expandAllMenuItem_Click(object sender, System.EventArgs e)
-		{
-			tests.BeginUpdate();
-			tests.ExpandAll();
-			tests.EndUpdate();
-		}
-
-		private void propertiesMenuItem_Click(object sender, System.EventArgs e)
-		{
-			if ( tests.SelectedTest != null )
-				tests.ShowPropertiesDialog( tests.SelectedTest );
-		}
-
-		#endregion
-
-		#region Component 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.tabs = new System.Windows.Forms.TabControl();
-			this.testPage = new System.Windows.Forms.TabPage();
-			this.testPanel = new System.Windows.Forms.Panel();
-			this.treePanel = new System.Windows.Forms.Panel();
-			this.tests = new NUnit.UiKit.TestSuiteTreeView();
-			this.buttonPanel = new System.Windows.Forms.Panel();
-			this.checkFailedButton = new System.Windows.Forms.Button();
-			this.clearAllButton = new System.Windows.Forms.Button();
-			this.categoryPage = new System.Windows.Forms.TabPage();
-			this.categoryPanel = new System.Windows.Forms.Panel();
-			this.categoryButtonPanel = new System.Windows.Forms.Panel();
-			this.removeCategory = new System.Windows.Forms.Button();
-			this.addCategory = new System.Windows.Forms.Button();
-			this.selectedCategories = new System.Windows.Forms.GroupBox();
-			this.selectedList = new System.Windows.Forms.ListBox();
-			this.excludeCheckbox = new System.Windows.Forms.CheckBox();
-			this.groupBox1 = new System.Windows.Forms.GroupBox();
-			this.availableList = new System.Windows.Forms.ListBox();
-			this.tabs.SuspendLayout();
-			this.testPage.SuspendLayout();
-			this.testPanel.SuspendLayout();
-			this.treePanel.SuspendLayout();
-			this.buttonPanel.SuspendLayout();
-			this.categoryPage.SuspendLayout();
-			this.categoryPanel.SuspendLayout();
-			this.categoryButtonPanel.SuspendLayout();
-			this.selectedCategories.SuspendLayout();
-			this.groupBox1.SuspendLayout();
-			this.SuspendLayout();
-			// 
-			// tabs
-			// 
-			this.tabs.Alignment = System.Windows.Forms.TabAlignment.Left;
-			this.tabs.Controls.Add(this.testPage);
-			this.tabs.Controls.Add(this.categoryPage);
-			this.tabs.Dock = System.Windows.Forms.DockStyle.Fill;
-			this.tabs.Location = new System.Drawing.Point(0, 0);
-			this.tabs.Multiline = true;
-			this.tabs.Name = "tabs";
-			this.tabs.SelectedIndex = 0;
-			this.tabs.Size = new System.Drawing.Size(248, 496);
-			this.tabs.TabIndex = 0;
-			// 
-			// testPage
-			// 
-			this.testPage.Controls.Add(this.testPanel);
-			this.testPage.Location = new System.Drawing.Point(25, 4);
-			this.testPage.Name = "testPage";
-			this.testPage.Size = new System.Drawing.Size(219, 488);
-			this.testPage.TabIndex = 0;
-			this.testPage.Text = "Tests";
-			// 
-			// testPanel
-			// 
-			this.testPanel.Controls.Add(this.treePanel);
-			this.testPanel.Controls.Add(this.buttonPanel);
-			this.testPanel.Dock = System.Windows.Forms.DockStyle.Fill;
-			this.testPanel.Location = new System.Drawing.Point(0, 0);
-			this.testPanel.Name = "testPanel";
-			this.testPanel.Size = new System.Drawing.Size(219, 488);
-			this.testPanel.TabIndex = 0;
-			// 
-			// treePanel
-			// 
-			this.treePanel.Controls.Add(this.tests);
-			this.treePanel.Dock = System.Windows.Forms.DockStyle.Fill;
-			this.treePanel.Location = new System.Drawing.Point(0, 0);
-			this.treePanel.Name = "treePanel";
-			this.treePanel.Size = new System.Drawing.Size(219, 448);
-			this.treePanel.TabIndex = 0;
-			// 
-			// tests
-			// 
-			this.tests.AllowDrop = true;
-			this.tests.Dock = System.Windows.Forms.DockStyle.Fill;
-			this.tests.HideSelection = false;
-			this.tests.Location = new System.Drawing.Point(0, 0);
-			this.tests.Name = "tests";
-			this.tests.Size = new System.Drawing.Size(219, 448);
-			this.tests.TabIndex = 0;
-			this.tests.CheckBoxesChanged += new System.EventHandler(this.tests_CheckBoxesChanged);
-			// 
-			// buttonPanel
-			// 
-			this.buttonPanel.Controls.Add(this.checkFailedButton);
-			this.buttonPanel.Controls.Add(this.clearAllButton);
-			this.buttonPanel.Dock = System.Windows.Forms.DockStyle.Bottom;
-			this.buttonPanel.Location = new System.Drawing.Point(0, 448);
-			this.buttonPanel.Name = "buttonPanel";
-			this.buttonPanel.Size = new System.Drawing.Size(219, 40);
-			this.buttonPanel.TabIndex = 1;
-			// 
-			// checkFailedButton
-			// 
-			this.checkFailedButton.Anchor = System.Windows.Forms.AnchorStyles.Top;
-			this.checkFailedButton.Location = new System.Drawing.Point(117, 8);
-			this.checkFailedButton.Name = "checkFailedButton";
-			this.checkFailedButton.Size = new System.Drawing.Size(96, 23);
-			this.checkFailedButton.TabIndex = 1;
-			this.checkFailedButton.Text = "Check Failed";
-			this.checkFailedButton.Click += new System.EventHandler(this.checkFailedButton_Click);
-			// 
-			// clearAllButton
-			// 
-			this.clearAllButton.Anchor = System.Windows.Forms.AnchorStyles.Top;
-			this.clearAllButton.Location = new System.Drawing.Point(13, 8);
-			this.clearAllButton.Name = "clearAllButton";
-			this.clearAllButton.Size = new System.Drawing.Size(96, 23);
-			this.clearAllButton.TabIndex = 0;
-			this.clearAllButton.Text = "Clear All";
-			this.clearAllButton.Click += new System.EventHandler(this.clearAllButton_Click);
-			// 
-			// categoryPage
-			// 
-			this.categoryPage.Controls.Add(this.categoryPanel);
-			this.categoryPage.Location = new System.Drawing.Point(25, 4);
-			this.categoryPage.Name = "categoryPage";
-			this.categoryPage.Size = new System.Drawing.Size(219, 488);
-			this.categoryPage.TabIndex = 1;
-			this.categoryPage.Text = "Categories";
-			// 
-			// categoryPanel
-			// 
-			this.categoryPanel.Controls.Add(this.categoryButtonPanel);
-			this.categoryPanel.Controls.Add(this.selectedCategories);
-			this.categoryPanel.Controls.Add(this.groupBox1);
-			this.categoryPanel.Dock = System.Windows.Forms.DockStyle.Fill;
-			this.categoryPanel.Location = new System.Drawing.Point(0, 0);
-			this.categoryPanel.Name = "categoryPanel";
-			this.categoryPanel.Size = new System.Drawing.Size(219, 488);
-			this.categoryPanel.TabIndex = 0;
-			// 
-			// categoryButtonPanel
-			// 
-			this.categoryButtonPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) 
-				| System.Windows.Forms.AnchorStyles.Right)));
-			this.categoryButtonPanel.Controls.Add(this.removeCategory);
-			this.categoryButtonPanel.Controls.Add(this.addCategory);
-			this.categoryButtonPanel.Location = new System.Drawing.Point(8, 280);
-			this.categoryButtonPanel.Name = "categoryButtonPanel";
-			this.categoryButtonPanel.Size = new System.Drawing.Size(203, 40);
-			this.categoryButtonPanel.TabIndex = 1;
-			// 
-			// removeCategory
-			// 
-			this.removeCategory.Anchor = System.Windows.Forms.AnchorStyles.Top;
-			this.removeCategory.Location = new System.Drawing.Point(109, 8);
-			this.removeCategory.Name = "removeCategory";
-			this.removeCategory.TabIndex = 1;
-			this.removeCategory.Text = "Remove";
-			this.removeCategory.Click += new System.EventHandler(this.removeCategory_Click);
-			// 
-			// addCategory
-			// 
-			this.addCategory.Anchor = System.Windows.Forms.AnchorStyles.Top;
-			this.addCategory.Location = new System.Drawing.Point(21, 8);
-			this.addCategory.Name = "addCategory";
-			this.addCategory.TabIndex = 0;
-			this.addCategory.Text = "Add";
-			this.addCategory.Click += new System.EventHandler(this.addCategory_Click);
-			// 
-			// selectedCategories
-			// 
-			this.selectedCategories.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) 
-				| System.Windows.Forms.AnchorStyles.Right)));
-			this.selectedCategories.Controls.Add(this.selectedList);
-			this.selectedCategories.Controls.Add(this.excludeCheckbox);
-			this.selectedCategories.Location = new System.Drawing.Point(8, 328);
-			this.selectedCategories.Name = "selectedCategories";
-			this.selectedCategories.Size = new System.Drawing.Size(203, 144);
-			this.selectedCategories.TabIndex = 2;
-			this.selectedCategories.TabStop = false;
-			this.selectedCategories.Text = "Selected Categories";
-			// 
-			// selectedList
-			// 
-			this.selectedList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-				| System.Windows.Forms.AnchorStyles.Left) 
-				| System.Windows.Forms.AnchorStyles.Right)));
-			this.selectedList.ItemHeight = 16;
-			this.selectedList.Location = new System.Drawing.Point(8, 16);
-			this.selectedList.Name = "selectedList";
-			this.selectedList.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
-			this.selectedList.Size = new System.Drawing.Size(187, 84);
-			this.selectedList.TabIndex = 0;
-			this.selectedList.DoubleClick += new System.EventHandler(this.removeCategory_Click);
-			// 
-			// excludeCheckbox
-			// 
-			this.excludeCheckbox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
-				| System.Windows.Forms.AnchorStyles.Right)));
-			this.excludeCheckbox.Location = new System.Drawing.Point(8, 120);
-			this.excludeCheckbox.Name = "excludeCheckbox";
-			this.excludeCheckbox.Size = new System.Drawing.Size(179, 16);
-			this.excludeCheckbox.TabIndex = 1;
-			this.excludeCheckbox.Text = "Exclude these categories";
-			this.excludeCheckbox.CheckedChanged += new System.EventHandler(this.excludeCheckbox_CheckedChanged);
-			// 
-			// groupBox1
-			// 
-			this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-				| System.Windows.Forms.AnchorStyles.Left) 
-				| System.Windows.Forms.AnchorStyles.Right)));
-			this.groupBox1.Controls.Add(this.availableList);
-			this.groupBox1.Location = new System.Drawing.Point(8, 0);
-			this.groupBox1.Name = "groupBox1";
-			this.groupBox1.Size = new System.Drawing.Size(203, 272);
-			this.groupBox1.TabIndex = 0;
-			this.groupBox1.TabStop = false;
-			this.groupBox1.Text = "Available Categories";
-			// 
-			// availableList
-			// 
-			this.availableList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
-				| System.Windows.Forms.AnchorStyles.Left) 
-				| System.Windows.Forms.AnchorStyles.Right)));
-			this.availableList.ItemHeight = 16;
-			this.availableList.Location = new System.Drawing.Point(8, 24);
-			this.availableList.Name = "availableList";
-			this.availableList.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
-			this.availableList.Size = new System.Drawing.Size(187, 244);
-			this.availableList.TabIndex = 0;
-			this.availableList.DoubleClick += new System.EventHandler(this.addCategory_Click);
-			// 
-			// TestTree
-			// 
-			this.Controls.Add(this.tabs);
-			this.Name = "TestTree";
-			this.Size = new System.Drawing.Size(248, 496);
-			this.tabs.ResumeLayout(false);
-			this.testPage.ResumeLayout(false);
-			this.testPanel.ResumeLayout(false);
-			this.treePanel.ResumeLayout(false);
-			this.buttonPanel.ResumeLayout(false);
-			this.categoryPage.ResumeLayout(false);
-			this.categoryPanel.ResumeLayout(false);
-			this.categoryButtonPanel.ResumeLayout(false);
-			this.selectedCategories.ResumeLayout(false);
-			this.groupBox1.ResumeLayout(false);
-			this.ResumeLayout(false);
-
-		}
-		#endregion
-
-		#region SelectedTestsChanged Event
-
-		public event SelectedTestsChangedEventHandler SelectedTestsChanged;
-
-		#endregion
-
-
-        public void RunAllTests()
-        {
-            RunAllTests(true);
-        }
-
-		public void RunAllTests(bool ignoreTests)
-		{
-			tests.RunAllTests(ignoreTests);
-		}
-
-		public void RunSelectedTests()
-		{
-			tests.RunSelectedTests();
-		}
-
-		public void RunFailedTests()
-		{
-			tests.RunFailedTests();
-		}
-
-		private void addCategory_Click(object sender, System.EventArgs e)
-		{
-			if (availableList.SelectedItems.Count > 0) 
-			{
-                // Create a separate list to avoid exception
-                // when using the list box directly.
-                List<string> categories = new List<string>();
-				foreach ( string category in availableList.SelectedItems ) 
-                    categories.Add(category);
-
-                foreach ( string category in categories)
-                {
-					selectedList.Items.Add(category);
-					availableList.Items.Remove(category);
-				}
-
-				UpdateCategoryFilter();
-				if (this.SelectedCategories.Length > 0)
-					this.excludeCheckbox.Enabled = true;
-			}
-		}
-
-		private void removeCategory_Click(object sender, System.EventArgs e)
-		{
-			if (selectedList.SelectedItems.Count > 0) 
-			{
-                // Create a separate list to avoid exception
-                // when using the list box directly.
-                List<string> categories = new List<string>();
-                foreach (string category in selectedList.SelectedItems)
-                    categories.Add(category);
-
-				foreach ( string category in categories )
-				{
-					selectedList.Items.Remove(category);
-					availableList.Items.Add(category);
-				}
-
-				UpdateCategoryFilter();
-				if (this.SelectedCategories.Length == 0)
-				{
-					this.excludeCheckbox.Checked = false;
-					this.excludeCheckbox.Enabled = false;
-				}
-			}
-		}
-
-		private void clearAllButton_Click(object sender, System.EventArgs e)
-		{
-			tests.ClearCheckedNodes();
-		}
-
-		private void checkFailedButton_Click(object sender, System.EventArgs e)
-		{
-			tests.CheckFailedNodes();
-		}
-
-		private void tests_SelectedTestChanged(ITest test)
-		{
-			if (SelectedTestsChanged != null) 
-			{
-				SelectedTestsChangedEventArgs args = new SelectedTestsChangedEventArgs(test.TestName.Name, test.TestCount);
-				SelectedTestsChanged(tests, args);
-			}
-		}
-
-		private void events_TestLoaded(object sender, NUnit.Util.TestEventArgs args)
-		{			
-			treeMenu.Visible = true;
-
-			availableCategories = this.loader.GetCategories();
-			availableList.Items.Clear();
-			selectedList.Items.Clear();
-			
-			availableList.SuspendLayout();
-			foreach (string category in availableCategories) 
-				availableList.Items.Add(category);
-
-			// tree may have restored visual state
-			if( !tests.CategoryFilter.IsEmpty )
-			{
-				ITestFilter filter = tests.CategoryFilter;
-				if ( filter is NUnit.Core.Filters.NotFilter )
-				{
-					filter = ((NUnit.Core.Filters.NotFilter)filter).BaseFilter;
-					this.excludeCheckbox.Checked = true;
-				}
-
-				foreach( string cat in ((NUnit.Core.Filters.CategoryFilter)filter).Categories )
-					if ( this.availableCategories.Contains( cat ) )
-					{
-						this.availableList.Items.Remove( cat );
-						this.selectedList.Items.Add( cat );
-						this.excludeCheckbox.Enabled = true;
-					}
-
-				UpdateCategoryFilter();
-			}
-
-			availableList.ResumeLayout();
-		}
-
-		private void events_TestReloaded(object sender, NUnit.Util.TestEventArgs args)
-		{
-			// Get new list of available categories
-			availableCategories = this.loader.GetCategories();
-
-			// Remove any selected items that are no longer available
-			int index = selectedList.Items.Count;
-			selectedList.SuspendLayout();
-			while( --index >= 0 )
-			{
-				string category = selectedList.Items[index].ToString();
-				if ( !availableCategories.Contains( category )  )
-					selectedList.Items.RemoveAt( index );
-			}
-			selectedList.ResumeLayout();
-
-            // Clear check box if there are no more selected items.
-            if (selectedList.Items.Count == 0)
-                excludeCheckbox.Checked = excludeCheckbox.Enabled = false;
-
-            // Put any unselected available items on availableList
-			availableList.Items.Clear();
-			availableList.SuspendLayout();
-			foreach( string category in availableCategories )
-				if( selectedList.FindStringExact( category ) < 0 )
-					availableList.Items.Add( category );
-			availableList.ResumeLayout();
-
-			// Tell the tree what is selected
-			UpdateCategoryFilter();
-		}
-
-		private void excludeCheckbox_CheckedChanged(object sender, System.EventArgs e)
-		{
-			UpdateCategoryFilter();
-		}
-
-		private void events_TestUnloaded(object sender, NUnit.Util.TestEventArgs args)
-		{
-			availableCategories.Clear();
-			availableList.Items.Clear();
-			selectedList.Items.Clear();
-			excludeCheckbox.Checked = false;
-			excludeCheckbox.Enabled = false;
-			treeMenu.Visible = false;
-		}
-
-		private void tests_CheckedTestChanged(ITest[] tests)
-		{
-			if (SelectedTestsChanged != null) 
-			{
-				SelectedTestsChangedEventArgs args = new SelectedTestsChangedEventArgs("", tests.Length);
-				SelectedTestsChanged(tests, args);
-			}
-
-			if (tests.Length > 0) 
-			{
-			}
-		}
-
-		private void checkBoxesMenuItem_Click(object sender, System.EventArgs e)
-		{
-			Services.UserSettings.SaveSetting( "Options.ShowCheckBoxes", 
-				ShowCheckBoxes = !checkBoxesMenuItem.Checked );
-			
-			// Temporary till we can save tree state and restore
-			//this.SetInitialExpansion();
-		}
-
-		private void UpdateCategoryFilter()
-		{
-			TestFilter catFilter;
-
-			if ( SelectedCategories == null || SelectedCategories.Length == 0 )
-				catFilter = TestFilter.Empty;
-			else
-				catFilter = new NUnit.Core.Filters.CategoryFilter( SelectedCategories );
-
-			if ( excludeCheckbox.Checked )
-				catFilter = new NUnit.Core.Filters.NotFilter( catFilter, true );
-
-			tests.CategoryFilter = catFilter;
-		}
-
-		private void tests_CheckBoxesChanged(object sender, System.EventArgs e)
-		{
-			ShowCheckBoxes = tests.CheckBoxes;
-		}
-
-		private void UserSettings_Changed(object sender, SettingsEventArgs args)
-		{
-			if ( args.SettingName == "Options.ShowCheckBoxes" )
-				this.ShowCheckBoxes = Services.UserSettings.GetSetting( args.SettingName, false );
-		}
-	}
-
-	public class SelectedTestsChangedEventArgs : EventArgs 
-	{
-		private string testName;
-		private int count;
-
-		public SelectedTestsChangedEventArgs(string testName, int count) 
-		{
-			this.testName = testName;
-			this.count = count;
-		}
-
-		public string TestName 
-		{
-			get { return testName; }
-		}
-
-		public int TestCount 
-		{
-			get { return count; }
-		}
-	}
-}
+				});
+            this.treeMenu.Text = "&Tree";
+            this.treeMenu.Visible = false;
+            this.treeMenu.Popup += new System.EventHandler(this.treeMenu_Popup);
+            // 
+            // checkBoxesMenuItem
+            // 
+            this.checkBoxesMenuItem.Index = 0;
+            this.checkBoxesMenuItem.Text = "Show Check&Boxes";
+            this.checkBoxesMenuItem.Click += new System.EventHandler(this.checkBoxesMenuItem_Click);
+            // 
+            // treeMenuSeparatorItem1
+            // 
+            this.treeMenuSeparatorItem1.Index = 1;
+            this.treeMenuSeparatorItem1.Text = "-";
+            // 
+            // expandMenuItem
+            // 
+            this.expandMenuItem.Index = 2;
+            this.expandMenuItem.Text = "&Expand";
+            this.expandMenuItem.Click += new System.EventHandler(this.expandMenuItem_Click);
+            // 
+            // collapseMenuItem
+            // 
+            this.collapseMenuItem.Index = 3;
+            this.collapseMenuItem.Text = "&Collapse";
+            this.collapseMenuItem.Click += new System.EventHandler(this.collapseMenuItem_Click);
+            // 
+            // treeMenuSeparatorItem2
+            // 
+            this.treeMenuSeparatorItem2.Index = 4;
+            this.treeMenuSeparatorItem2.Text = "-";
+            // 
+            // expandAllMenuItem
+            // 
+            this.expandAllMenuItem.Index = 5;
+            this.expandAllMenuItem.Text = "Expand All";
+            this.expandAllMenuItem.Click += new System.EventHandler(this.expandAllMenuItem_Click);
+            // 
+            // collapseAllMenuItem
+            // 
+            this.collapseAllMenuItem.Index = 6;
+            this.collapseAllMenuItem.Text = "Collapse All";
+            this.collapseAllMenuItem.Click += new System.EventHandler(this.collapseAllMenuItem_Click);
+            // 
+            // hideTestsMenuItem
+            // 
+            this.hideTestsMenuItem.Index = 7;
+            this.hideTestsMenuItem.Text = "Hide Tests";
+            this.hideTestsMenuItem.Click += new System.EventHandler(this.hideTestsMenuItem_Click);
+            // 
+            // treeMenuSeparatorItem3
+            // 
+            this.treeMenuSeparatorItem3.Index = 8;
+            this.treeMenuSeparatorItem3.Text = "-";
+            // 
+            // propertiesMenuItem
+            // 
+            this.propertiesMenuItem.Index = 9;
+            this.propertiesMenuItem.Text = "&Properties";
+            this.propertiesMenuItem.Click += new System.EventHandler(this.propertiesMenuItem_Click);
+
+
+            tests.SelectedTestChanged += new SelectedTestChangedHandler(tests_SelectedTestChanged);
+            tests.CheckedTestChanged += new CheckedTestChangedHandler(tests_CheckedTestChanged);
+
+            this.excludeCheckbox.Enabled = false;
+
+            SearchImageButton.Image = new Bitmap(typeof(TestTree), "Images.search.png");
+        }
+
+        protected override void OnLoad(EventArgs e)
+        {
+            if (!this.DesignMode)
+            {
+                this.ShowCheckBoxes =
+                    Services.UserSettings.GetSetting("Options.ShowCheckBoxes", false);
+                Initialize(Services.TestLoader);
+                Services.UserSettings.Changed += new SettingsEventHandler(UserSettings_Changed);
+            }
+
+            base.OnLoad(e);
+        }
+
+        public void Initialize(TestLoader loader)
+        {
+            this.tests.Initialize(loader, loader.Events);
+            this.loader = loader;
+            loader.Events.TestLoaded += new NUnit.Util.TestEventHandler(events_TestLoaded);
+            loader.Events.TestReloaded += new NUnit.Util.TestEventHandler(events_TestReloaded);
+            loader.Events.TestUnloaded += new NUnit.Util.TestEventHandler(events_TestUnloaded);
+        }
+
+        public void SelectCategories(string[] categories, bool exclude)
+        {
+            foreach (string category in categories)
+            {
+                if (availableCategories.Contains(category))
+                {
+                    if (!selectedList.Items.Contains(category))
+                    {
+                        selectedList.Items.Add(category);
+                    }
+                    availableList.Items.Remove(category);
+
+                    this.excludeCheckbox.Checked = exclude;
+                }
+            }
+
+            UpdateCategoryFilter();
+            if (this.SelectedCategories.Length > 0)
+                this.excludeCheckbox.Enabled = true;
+        }
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing)
+            {
+                if (components != null)
+                {
+                    components.Dispose();
+                }
+            }
+            base.Dispose(disposing);
+        }
+
+        #endregion
+
+        #region View Menu Handlers
+
+        private void treeMenu_Popup(object sender, System.EventArgs e)
+        {
+            TreeNode selectedNode = tests.SelectedNode;
+            if (selectedNode != null && selectedNode.Nodes.Count > 0)
+            {
+                bool isExpanded = selectedNode.IsExpanded;
+                collapseMenuItem.Enabled = isExpanded;
+                expandMenuItem.Enabled = !isExpanded;
+            }
+            else
+            {
+                collapseMenuItem.Enabled = expandMenuItem.Enabled = false;
+            }
+        }
+
+        private void collapseMenuItem_Click(object sender, System.EventArgs e)
+        {
+            tests.SelectedNode.Collapse();
+        }
+
+        private void expandMenuItem_Click(object sender, System.EventArgs e)
+        {
+            tests.SelectedNode.Expand();
+        }
+
+        private void collapseAllMenuItem_Click(object sender, System.EventArgs e)
+        {
+            tests.BeginUpdate();
+            tests.CollapseAll();
+            tests.EndUpdate();
+
+            // Compensate for a bug in the underlying control
+            if (tests.Nodes.Count > 0)
+                tests.SelectedNode = tests.Nodes[0];
+        }
+
+        private void hideTestsMenuItem_Click(object sender, System.EventArgs e)
+        {
+            tests.HideTests();
+        }
+
+        private void expandAllMenuItem_Click(object sender, System.EventArgs e)
+        {
+            tests.BeginUpdate();
+            tests.ExpandAll();
+            tests.EndUpdate();
+        }
+
+        private void propertiesMenuItem_Click(object sender, System.EventArgs e)
+        {
+            if (tests.SelectedTest != null)
+                tests.ShowPropertiesDialog(tests.SelectedTest);
+        }
+
+        #endregion
+
+        #region Component 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.components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TestTree));
+            this.tabs = new System.Windows.Forms.TabControl();
+            this.testPage = new System.Windows.Forms.TabPage();
+            this.testPanel = new System.Windows.Forms.Panel();
+            this.treePanel = new System.Windows.Forms.Panel();
+            this.FindTestsPanel = new System.Windows.Forms.Panel();
+            this.SearchImageButton = new System.Windows.Forms.PictureBox();
+            this.TestNameTextBox = new System.Windows.Forms.TextBox();
+            this.buttonPanel = new System.Windows.Forms.Panel();
+            this.checkFailedButton = new System.Windows.Forms.Button();
+            this.clearAllButton = new System.Windows.Forms.Button();
+            this.categoryPage = new System.Windows.Forms.TabPage();
+            this.categoryPanel = new System.Windows.Forms.Panel();
+            this.categoryButtonPanel = new System.Windows.Forms.Panel();
+            this.removeCategory = new System.Windows.Forms.Button();
+            this.addCategory = new System.Windows.Forms.Button();
+            this.selectedCategories = new System.Windows.Forms.GroupBox();
+            this.selectedList = new System.Windows.Forms.ListBox();
+            this.excludeCheckbox = new System.Windows.Forms.CheckBox();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.availableList = new System.Windows.Forms.ListBox();
+            this.tests = new NUnit.UiKit.TestSuiteTreeView();
+            this.tabs.SuspendLayout();
+            this.testPage.SuspendLayout();
+            this.testPanel.SuspendLayout();
+            this.treePanel.SuspendLayout();
+            this.FindTestsPanel.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.SearchImageButton)).BeginInit();
+            this.buttonPanel.SuspendLayout();
+            this.categoryPage.SuspendLayout();
+            this.categoryPanel.SuspendLayout();
+            this.categoryButtonPanel.SuspendLayout();
+            this.selectedCategories.SuspendLayout();
+            this.groupBox1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // tabs
+            // 
+            this.tabs.Alignment = System.Windows.Forms.TabAlignment.Left;
+            this.tabs.Controls.Add(this.testPage);
+            this.tabs.Controls.Add(this.categoryPage);
+            this.tabs.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tabs.Location = new System.Drawing.Point(0, 0);
+            this.tabs.Multiline = true;
+            this.tabs.Name = "tabs";
+            this.tabs.SelectedIndex = 0;
+            this.tabs.Size = new System.Drawing.Size(248, 496);
+            this.tabs.TabIndex = 0;
+            // 
+            // testPage
+            // 
+            this.testPage.Controls.Add(this.testPanel);
+            this.testPage.Location = new System.Drawing.Point(23, 4);
+            this.testPage.Name = "testPage";
+            this.testPage.Size = new System.Drawing.Size(221, 488);
+            this.testPage.TabIndex = 0;
+            this.testPage.Text = "Tests";
+            // 
+            // testPanel
+            // 
+            this.testPanel.Controls.Add(this.treePanel);
+            this.testPanel.Controls.Add(this.FindTestsPanel);
+            this.testPanel.Controls.Add(this.buttonPanel);
+            this.testPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.testPanel.Location = new System.Drawing.Point(0, 0);
+            this.testPanel.Name = "testPanel";
+            this.testPanel.Size = new System.Drawing.Size(221, 488);
+            this.testPanel.TabIndex = 0;
+            // 
+            // treePanel
+            // 
+            this.treePanel.Controls.Add(this.tests);
+            this.treePanel.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.treePanel.Location = new System.Drawing.Point(0, 27);
+            this.treePanel.Name = "treePanel";
+            this.treePanel.Size = new System.Drawing.Size(221, 421);
+            this.treePanel.TabIndex = 3;
+            // 
+            // FindTestsPanel
+            // 
+            this.FindTestsPanel.Controls.Add(this.SearchImageButton);
+            this.FindTestsPanel.Controls.Add(this.TestNameTextBox);
+            this.FindTestsPanel.Dock = System.Windows.Forms.DockStyle.Top;
+            this.FindTestsPanel.Location = new System.Drawing.Point(0, 0);
+            this.FindTestsPanel.Name = "FindTestsPanel";
+            this.FindTestsPanel.Size = new System.Drawing.Size(221, 27);
+            this.FindTestsPanel.TabIndex = 2;
+            // 
+            // SearchImageButton
+            // 
+            this.SearchImageButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.SearchImageButton.Location = new System.Drawing.Point(196, 3);
+            this.SearchImageButton.Name = "SearchImageButton";
+            this.SearchImageButton.Size = new System.Drawing.Size(22, 20);
+            this.SearchImageButton.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
+            this.SearchImageButton.TabIndex = 1;
+            this.SearchImageButton.TabStop = false;
+            this.SearchImageButton.Click += new System.EventHandler(this.SearchImageButton_Click);
+            // 
+            // TestNameTextBox
+            // 
+            this.TestNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.TestNameTextBox.Location = new System.Drawing.Point(0, 3);
+            this.TestNameTextBox.Name = "TestNameTextBox";
+            this.TestNameTextBox.Size = new System.Drawing.Size(192, 20);
+            this.TestNameTextBox.TabIndex = 0;
+            this.TestNameTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TestNameTextBox_KeyDown);
+            // 
+            // buttonPanel
+            // 
+            this.buttonPanel.Controls.Add(this.checkFailedButton);
+            this.buttonPanel.Controls.Add(this.clearAllButton);
+            this.buttonPanel.Dock = System.Windows.Forms.DockStyle.Bottom;
+            this.buttonPanel.Location = new System.Drawing.Point(0, 448);
+            this.buttonPanel.Name = "buttonPanel";
+            this.buttonPanel.Size = new System.Drawing.Size(221, 40);
+            this.buttonPanel.TabIndex = 1;
+            // 
+            // checkFailedButton
+            // 
+            this.checkFailedButton.Anchor = System.Windows.Forms.AnchorStyles.Top;
+            this.checkFailedButton.Location = new System.Drawing.Point(118, 8);
+            this.checkFailedButton.Name = "checkFailedButton";
+            this.checkFailedButton.Size = new System.Drawing.Size(96, 23);
+            this.checkFailedButton.TabIndex = 1;
+            this.checkFailedButton.Text = "Check Failed";
+            this.checkFailedButton.Click += new System.EventHandler(this.checkFailedButton_Click);
+            // 
+            // clearAllButton
+            // 
+            this.clearAllButton.Anchor = System.Windows.Forms.AnchorStyles.Top;
+            this.clearAllButton.Location = new System.Drawing.Point(14, 8);
+            this.clearAllButton.Name = "clearAllButton";
+            this.clearAllButton.Size = new System.Drawing.Size(96, 23);
+            this.clearAllButton.TabIndex = 0;
+            this.clearAllButton.Text = "Clear All";
+            this.clearAllButton.Click += new System.EventHandler(this.clearAllButton_Click);
+            // 
+            // categoryPage
+            // 
+            this.categoryPage.Controls.Add(this.categoryPanel);
+            this.categoryPage.Location = new System.Drawing.Point(23, 4);
+            this.categoryPage.Name = "categoryPage";
+            this.categoryPage.Size = new System.Drawing.Size(221, 488);
+            this.categoryPage.TabIndex = 1;
+            this.categoryPage.Text = "Categories";
+            // 
+            // categoryPanel
+            // 
+            this.categoryPanel.Controls.Add(this.categoryButtonPanel);
+            this.categoryPanel.Controls.Add(this.selectedCategories);
+            this.categoryPanel.Controls.Add(this.groupBox1);
+            this.categoryPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.categoryPanel.Location = new System.Drawing.Point(0, 0);
+            this.categoryPanel.Name = "categoryPanel";
+            this.categoryPanel.Size = new System.Drawing.Size(221, 488);
+            this.categoryPanel.TabIndex = 0;
+            // 
+            // categoryButtonPanel
+            // 
+            this.categoryButtonPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.categoryButtonPanel.Controls.Add(this.removeCategory);
+            this.categoryButtonPanel.Controls.Add(this.addCategory);
+            this.categoryButtonPanel.Location = new System.Drawing.Point(8, 280);
+            this.categoryButtonPanel.Name = "categoryButtonPanel";
+            this.categoryButtonPanel.Size = new System.Drawing.Size(205, 40);
+            this.categoryButtonPanel.TabIndex = 1;
+            // 
+            // removeCategory
+            // 
+            this.removeCategory.Anchor = System.Windows.Forms.AnchorStyles.Top;
+            this.removeCategory.Location = new System.Drawing.Point(110, 8);
+            this.removeCategory.Name = "removeCategory";
+            this.removeCategory.Size = new System.Drawing.Size(75, 23);
+            this.removeCategory.TabIndex = 1;
+            this.removeCategory.Text = "Remove";
+            this.removeCategory.Click += new System.EventHandler(this.removeCategory_Click);
+            // 
+            // addCategory
+            // 
+            this.addCategory.Anchor = System.Windows.Forms.AnchorStyles.Top;
+            this.addCategory.Location = new System.Drawing.Point(22, 8);
+            this.addCategory.Name = "addCategory";
+            this.addCategory.Size = new System.Drawing.Size(75, 23);
+            this.addCategory.TabIndex = 0;
+            this.addCategory.Text = "Add";
+            this.addCategory.Click += new System.EventHandler(this.addCategory_Click);
+            // 
+            // selectedCategories
+            // 
+            this.selectedCategories.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.selectedCategories.Controls.Add(this.selectedList);
+            this.selectedCategories.Controls.Add(this.excludeCheckbox);
+            this.selectedCategories.Location = new System.Drawing.Point(8, 328);
+            this.selectedCategories.Name = "selectedCategories";
+            this.selectedCategories.Size = new System.Drawing.Size(205, 144);
+            this.selectedCategories.TabIndex = 2;
+            this.selectedCategories.TabStop = false;
+            this.selectedCategories.Text = "Selected Categories";
+            // 
+            // selectedList
+            // 
+            this.selectedList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.selectedList.Location = new System.Drawing.Point(8, 16);
+            this.selectedList.Name = "selectedList";
+            this.selectedList.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.selectedList.Size = new System.Drawing.Size(189, 82);
+            this.selectedList.TabIndex = 0;
+            this.selectedList.DoubleClick += new System.EventHandler(this.removeCategory_Click);
+            // 
+            // excludeCheckbox
+            // 
+            this.excludeCheckbox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.excludeCheckbox.Location = new System.Drawing.Point(8, 120);
+            this.excludeCheckbox.Name = "excludeCheckbox";
+            this.excludeCheckbox.Size = new System.Drawing.Size(181, 16);
+            this.excludeCheckbox.TabIndex = 1;
+            this.excludeCheckbox.Text = "Exclude these categories";
+            this.excludeCheckbox.CheckedChanged += new System.EventHandler(this.excludeCheckbox_CheckedChanged);
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.groupBox1.Controls.Add(this.availableList);
+            this.groupBox1.Location = new System.Drawing.Point(8, 0);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(205, 272);
+            this.groupBox1.TabIndex = 0;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "Available Categories";
+            // 
+            // availableList
+            // 
+            this.availableList.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+            | System.Windows.Forms.AnchorStyles.Left)
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.availableList.Location = new System.Drawing.Point(8, 24);
+            this.availableList.Name = "availableList";
+            this.availableList.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.availableList.Size = new System.Drawing.Size(189, 238);
+            this.availableList.TabIndex = 0;
+            this.availableList.DoubleClick += new System.EventHandler(this.addCategory_Click);
+            // 
+            // tests
+            // 
+            this.tests.AllowDrop = true;
+            this.tests.CategoryFilter = ((NUnit.Core.TestFilter)(resources.GetObject("tests.CategoryFilter")));
+            this.tests.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tests.HideSelection = false;
+            this.tests.ImageIndex = 0;
+            this.tests.Location = new System.Drawing.Point(0, 0);
+            this.tests.Name = "tests";
+            this.tests.SelectedImageIndex = 0;
+            this.tests.Size = new System.Drawing.Size(221, 421);
+            this.tests.TabIndex = 0;
+            this.tests.CheckBoxesChanged += new System.EventHandler(this.tests_CheckBoxesChanged);
+            // 
+            // TestTree
+            // 
+            this.Controls.Add(this.tabs);
+            this.Name = "TestTree";
+            this.Size = new System.Drawing.Size(248, 496);
+            this.tabs.ResumeLayout(false);
+            this.testPage.ResumeLayout(false);
+            this.testPanel.ResumeLayout(false);
+            this.treePanel.ResumeLayout(false);
+            this.FindTestsPanel.ResumeLayout(false);
+            this.FindTestsPanel.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.SearchImageButton)).EndInit();
+            this.buttonPanel.ResumeLayout(false);
+            this.categoryPage.ResumeLayout(false);
+            this.categoryPanel.ResumeLayout(false);
+            this.categoryButtonPanel.ResumeLayout(false);
+            this.selectedCategories.ResumeLayout(false);
+            this.groupBox1.ResumeLayout(false);
+            this.ResumeLayout(false);
+
+        }
+        #endregion
+
+        #region SelectedTestsChanged Event
+
+        public event SelectedTestsChangedEventHandler SelectedTestsChanged;
+
+        #endregion
+
+
+        public void RunAllTests()
+        {
+            RunAllTests(true);
+        }
+
+        public void RunAllTests(bool ignoreTests)
+        {
+            tests.RunAllTests(ignoreTests);
+        }
+
+        public void RunSelectedTests()
+        {
+            tests.RunSelectedTests();
+        }
+
+        public void RunFailedTests()
+        {
+            tests.RunFailedTests();
+        }
+
+        private void addCategory_Click(object sender, System.EventArgs e)
+        {
+            if (availableList.SelectedItems.Count > 0)
+            {
+                // Create a separate list to avoid exception
+                // when using the list box directly.
+                List<string> categories = new List<string>();
+                foreach (string category in availableList.SelectedItems)
+                    categories.Add(category);
+
+                foreach (string category in categories)
+                {
+                    selectedList.Items.Add(category);
+                    availableList.Items.Remove(category);
+                }
+
+                UpdateCategoryFilter();
+                if (this.SelectedCategories.Length > 0)
+                    this.excludeCheckbox.Enabled = true;
+            }
+        }
+
+        private void removeCategory_Click(object sender, System.EventArgs e)
+        {
+            if (selectedList.SelectedItems.Count > 0)
+            {
+                // Create a separate list to avoid exception
+                // when using the list box directly.
+                List<string> categories = new List<string>();
+                foreach (string category in selectedList.SelectedItems)
+                    categories.Add(category);
+
+                foreach (string category in categories)
+                {
+                    selectedList.Items.Remove(category);
+                    availableList.Items.Add(category);
+                }
+
+                UpdateCategoryFilter();
+                if (this.SelectedCategories.Length == 0)
+                {
+                    this.excludeCheckbox.Checked = false;
+                    this.excludeCheckbox.Enabled = false;
+                }
+            }
+        }
+
+        private void clearAllButton_Click(object sender, System.EventArgs e)
+        {
+            tests.ClearCheckedNodes();
+        }
+
+        private void checkFailedButton_Click(object sender, System.EventArgs e)
+        {
+            tests.CheckFailedNodes();
+        }
+
+        private void tests_SelectedTestChanged(ITest test)
+        {
+            if (SelectedTestsChanged != null)
+            {
+                SelectedTestsChangedEventArgs args = new SelectedTestsChangedEventArgs(test.TestName.Name, test.TestCount);
+                SelectedTestsChanged(tests, args);
+            }
+        }
+
+        private void events_TestLoaded(object sender, NUnit.Util.TestEventArgs args)
+        {
+            treeMenu.Visible = true;
+
+            availableCategories = this.loader.GetCategories();
+            availableList.Items.Clear();
+            selectedList.Items.Clear();
+
+            availableList.SuspendLayout();
+            foreach (string category in availableCategories)
+                availableList.Items.Add(category);
+
+            // tree may have restored visual state
+            if (!tests.CategoryFilter.IsEmpty)
+            {
+                ITestFilter filter = tests.CategoryFilter;
+                if (filter is NUnit.Core.Filters.NotFilter)
+                {
+                    filter = ((NUnit.Core.Filters.NotFilter)filter).BaseFilter;
+                    this.excludeCheckbox.Checked = true;
+                }
+
+                foreach (string cat in ((NUnit.Core.Filters.CategoryFilter)filter).Categories)
+                    if (this.availableCategories.Contains(cat))
+                    {
+                        this.availableList.Items.Remove(cat);
+                        this.selectedList.Items.Add(cat);
+                        this.excludeCheckbox.Enabled = true;
+                    }
+
+                UpdateCategoryFilter();
+            }
+
+            availableList.ResumeLayout();
+        }
+
+        private void events_TestReloaded(object sender, NUnit.Util.TestEventArgs args)
+        {
+            // Get new list of available categories
+            availableCategories = this.loader.GetCategories();
+
+            // Remove any selected items that are no longer available
+            int index = selectedList.Items.Count;
+            selectedList.SuspendLayout();
+            while (--index >= 0)
+            {
+                string category = selectedList.Items[index].ToString();
+                if (!availableCategories.Contains(category))
+                    selectedList.Items.RemoveAt(index);
+            }
+            selectedList.ResumeLayout();
+
+            // Clear check box if there are no more selected items.
+            if (selectedList.Items.Count == 0)
+                excludeCheckbox.Checked = excludeCheckbox.Enabled = false;
+
+            // Put any unselected available items on availableList
+            availableList.Items.Clear();
+            availableList.SuspendLayout();
+            foreach (string category in availableCategories)
+                if (selectedList.FindStringExact(category) < 0)
+                    availableList.Items.Add(category);
+            availableList.ResumeLayout();
+
+            // Tell the tree what is selected
+            UpdateCategoryFilter();
+        }
+
+        private void excludeCheckbox_CheckedChanged(object sender, System.EventArgs e)
+        {
+            UpdateCategoryFilter();
+        }
+
+        private void events_TestUnloaded(object sender, NUnit.Util.TestEventArgs args)
+        {
+            availableCategories.Clear();
+            availableList.Items.Clear();
+            selectedList.Items.Clear();
+            excludeCheckbox.Checked = false;
+            excludeCheckbox.Enabled = false;
+            treeMenu.Visible = false;
+        }
+
+        private void tests_CheckedTestChanged(ITest[] tests)
+        {
+            if (SelectedTestsChanged != null)
+            {
+                SelectedTestsChangedEventArgs args = new SelectedTestsChangedEventArgs("", tests.Length);
+                SelectedTestsChanged(tests, args);
+            }
+
+            if (tests.Length > 0)
+            {
+            }
+        }
+
+        private void checkBoxesMenuItem_Click(object sender, System.EventArgs e)
+        {
+            Services.UserSettings.SaveSetting("Options.ShowCheckBoxes",
+                ShowCheckBoxes = !checkBoxesMenuItem.Checked);
+
+            // Temporary till we can save tree state and restore
+            //this.SetInitialExpansion();
+        }
+
+        private void UpdateCategoryFilter()
+        {
+            TestFilter catFilter;
+
+            if (SelectedCategories == null || SelectedCategories.Length == 0)
+                catFilter = TestFilter.Empty;
+            else
+                catFilter = new NUnit.Core.Filters.CategoryFilter(SelectedCategories);
+
+            if (excludeCheckbox.Checked)
+                catFilter = new NUnit.Core.Filters.NotFilter(catFilter, true);
+
+            tests.CategoryFilter = catFilter;
+        }
+
+        private void tests_CheckBoxesChanged(object sender, System.EventArgs e)
+        {
+            ShowCheckBoxes = tests.CheckBoxes;
+        }
+
+        private void UserSettings_Changed(object sender, SettingsEventArgs args)
+        {
+            if (args.SettingName == "Options.ShowCheckBoxes")
+                this.ShowCheckBoxes = Services.UserSettings.GetSetting(args.SettingName, false);
+        }
+
+        private Queue<TreeNode> _testCache = new Queue<TreeNode>();
+
+        private void TestNameTextBox_KeyDown(object sender, KeyEventArgs e)
+        {
+            if (e.KeyCode == Keys.Enter)
+            {
+                e.SuppressKeyPress = true;
+                if (IsFindEnabled())
+                {
+                    FindAndHighlightTest();
+                }
+
+                return;
+            }
+
+            if (_testCache.Count >= 1)
+            {
+                _testCache.Clear();
+            }
+        }
+
+        private void SearchImageButton_Click(object sender, EventArgs e)
+        {
+            if (IsFindEnabled())
+            {
+                FindAndHighlightTest();
+            }
+        }
+
+        private bool IsFindEnabled()
+        {
+            return !string.IsNullOrEmpty(TestNameTextBox.Text);
+        }
+
+        private void FindAndHighlightTest()
+        {
+            if (_testCache.Count <= 0)
+            {
+                FindTests();
+            }
+
+            if (_testCache.Count >= 1)
+            {
+                TreeNode selectedNode = _testCache.Dequeue();
+                tests.SelectedNode = selectedNode;
+                _testCache.Enqueue(selectedNode);
+            }
+            else
+            {
+                MessageDisplay messageDisplay = new MessageDisplay();
+                messageDisplay.Info("No tests found with name " + TestNameTextBox.Text);
+            }
+        }
+
+        private void FindTests()
+        {
+            TreeNodeCollection nodes = this.tests.Nodes;
+            foreach (TreeNode treenode in nodes)
+            {
+                FindTestsRecursive(treenode);
+            }
+        }
+
+        private void FindTestsRecursive(TreeNode treeNode)
+        {
+            foreach (TreeNode treenode in treeNode.Nodes)
+            {
+                if (TestNameTextBox.Text.Equals(treenode.Text, StringComparison.CurrentCultureIgnoreCase))
+                {
+                    _testCache.Enqueue(treenode);
+                }
+
+                FindTestsRecursive(treenode);
+            }
+        }
+
+
+    }
+
+    public class SelectedTestsChangedEventArgs : EventArgs
+    {
+        private string testName;
+        private int count;
+
+        public SelectedTestsChangedEventArgs(string testName, int count)
+        {
+            this.testName = testName;
+            this.count = count;
+        }
+
+        public string TestName
+        {
+            get { return testName; }
+        }
+
+        public int TestCount
+        {
+            get { return count; }
+        }
+    }
+}

=== modified file 'src/GuiComponents/UiKit/nunit.uikit.dll.csproj'
--- src/GuiComponents/UiKit/nunit.uikit.dll.csproj	2012-08-08 03:34:12 +0000
+++ src/GuiComponents/UiKit/nunit.uikit.dll.csproj	2012-11-05 19:33:19 +0000
@@ -1,403 +1,404 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"; ToolsVersion="4.0">
-  <PropertyGroup>
-    <ProjectType>Local</ProjectType>
-    <ProductVersion>9.0.30729</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
-    <ProjectGuid>{27531BBF-183D-4C3A-935B-D840B9F1A3A4}</ProjectGuid>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <AssemblyKeyContainerName>
-    </AssemblyKeyContainerName>
-    <AssemblyName>nunit.uikit</AssemblyName>
-    <DefaultClientScript>JScript</DefaultClientScript>
-    <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
-    <DefaultTargetSchema>IE50</DefaultTargetSchema>
-    <DelaySign>false</DelaySign>
-    <OutputType>Library</OutputType>
-    <RootNamespace>NUnit.UiKit</RootNamespace>
-    <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
-    <FileUpgradeFlags>
-    </FileUpgradeFlags>
-    <UpgradeBackupLocation>
-    </UpgradeBackupLocation>
-    <OldToolsVersion>3.5</OldToolsVersion>
-    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
-    <PublishUrl>publish\</PublishUrl>
-    <Install>true</Install>
-    <InstallFrom>Disk</InstallFrom>
-    <UpdateEnabled>false</UpdateEnabled>
-    <UpdateMode>Foreground</UpdateMode>
-    <UpdateInterval>7</UpdateInterval>
-    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
-    <UpdatePeriodically>false</UpdatePeriodically>
-    <UpdateRequired>false</UpdateRequired>
-    <MapFileExtensions>true</MapFileExtensions>
-    <ApplicationRevision>0</ApplicationRevision>
-    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
-    <IsWebBootstrapper>false</IsWebBootstrapper>
-    <UseApplicationTrust>false</UseApplicationTrust>
-    <BootstrapperEnabled>true</BootstrapperEnabled>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <OutputPath>..\..\..\bin\Debug\lib\</OutputPath>
-    <BaseAddress>285212672</BaseAddress>
-    <ConfigurationOverrideFile>
-    </ConfigurationOverrideFile>
-    <DefineConstants>TRACE;DEBUG;CLR_2_0,NET_2_0,CS_3_0</DefineConstants>
-    <DocumentationFile>
-    </DocumentationFile>
-    <DebugSymbols>true</DebugSymbols>
-    <FileAlignment>4096</FileAlignment>
-    <NoWarn>1699</NoWarn>
-    <Optimize>false</Optimize>
-    <RegisterForComInterop>false</RegisterForComInterop>
-    <RemoveIntegerChecks>false</RemoveIntegerChecks>
-    <WarningLevel>4</WarningLevel>
-    <DebugType>full</DebugType>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <OutputPath>..\..\..\bin\Release\lib\</OutputPath>
-    <BaseAddress>285212672</BaseAddress>
-    <ConfigurationOverrideFile>
-    </ConfigurationOverrideFile>
-    <DefineConstants>TRACE;CLR_2_0,NET_2_0,CS_3_0</DefineConstants>
-    <DocumentationFile>
-    </DocumentationFile>
-    <FileAlignment>4096</FileAlignment>
-    <NoWarn>1699</NoWarn>
-    <Optimize>true</Optimize>
-    <RegisterForComInterop>false</RegisterForComInterop>
-    <RemoveIntegerChecks>false</RemoveIntegerChecks>
-    <WarningLevel>4</WarningLevel>
-    <DebugType>none</DebugType>
-    <ErrorReport>prompt</ErrorReport>
-    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="System">
-      <Name>System</Name>
-    </Reference>
-    <Reference Include="System.Data">
-      <Name>System.Data</Name>
-    </Reference>
-    <Reference Include="System.Drawing">
-      <Name>System.Drawing</Name>
-    </Reference>
-    <Reference Include="System.Windows.Forms">
-      <Name>System.Windows.Forms</Name>
-    </Reference>
-    <Reference Include="System.Xml">
-      <Name>System.XML</Name>
-    </Reference>
-    <ProjectReference Include="..\..\ClientUtilities\util\nunit.util.dll.csproj">
-      <Name>nunit.util.dll</Name>
-      <Project>{61CE9CE5-943E-44D4-A381-814DC1406767}</Project>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\NUnitCore\core\nunit.core.dll.csproj">
-      <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
-      <Name>nunit.core.dll</Name>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\NUnitCore\interfaces\nunit.core.interfaces.dll.csproj">
-      <Name>nunit.core.interfaces.dll</Name>
-      <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
-      <Private>False</Private>
-    </ProjectReference>
-    <ProjectReference Include="..\..\GuiException\UiException\nunit.uiexception.dll.csproj">
-      <Project>{3E87A106-EB20-4147-84C8-95B0BB43A1D4}</Project>
-      <Name>nunit.uiexception.dll</Name>
-      <Private>False</Private>
-    </ProjectReference>
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="..\..\CommonAssemblyInfo.cs">
-      <Link>CommonAssemblyInfo.cs</Link>
-    </Compile>
-    <Compile Include="AddConfigurationDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="AddTabPageDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="AppContainer.cs" />
-    <Compile Include="AssemblyInfo.cs" />
-    <Compile Include="ConfigurationEditor.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="EditTabPagesDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="ErrorDisplay.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="ExpandingLabel.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="ExpandingTextBox.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="GuiAttachedConsole.cs" />
-    <Compile Include="GuiTestEventDispatcher.cs" />
-    <Compile Include="IMessageDisplay.cs" />
-    <Compile Include="LongRunningOperationDisplay.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="NotRunTree.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="NUnitFormBase.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="ProgressBar.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="RenameConfigurationDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="ResultTabs.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="ScrollingTextDisplayForm.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="SettingsDialogBase.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="SettingsPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="SimpleSettingsDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="StatusBar.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="TabbedSettingsDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="TestPropertiesDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="TestPropertiesDialog.Designer.cs">
-      <DependentUpon>TestPropertiesDialog.cs</DependentUpon>
-    </Compile>
-    <Compile Include="TestSuiteTreeNode.cs" />
-    <Compile Include="TestSuiteTreeView.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="TestTree.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="TextBoxDisplay.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="TextDisplayContent.cs" />
-    <Compile Include="TextDisplay.cs" />
-    <Compile Include="TextDisplayTabPage.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="TextDisplayTabSettings.cs" />
-    <Compile Include="TextDisplayWriter.cs" />
-    <Compile Include="TextOutputSettingsPage.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="TipWindow.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="TreeBasedSettingsDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="MessageDisplay.cs" />
-    <Compile Include="VisualState.cs" />
-    <Compile Include="WaitCursor.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="AddConfigurationDialog.resx">
-      <DependentUpon>AddConfigurationDialog.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="AddTabPageDialog.resx">
-      <DependentUpon>AddTabPageDialog.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="ConfigurationEditor.resx">
-      <DependentUpon>ConfigurationEditor.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="EditTabPagesDialog.resx">
-      <DependentUpon>EditTabPagesDialog.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="ErrorDisplay.resx">
-      <DependentUpon>ErrorDisplay.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="ExpandingLabel.resx">
-      <DependentUpon>ExpandingLabel.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="ExpandingTextBox.resx">
-      <DependentUpon>ExpandingTextBox.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="LongRunningOperationDisplay.resx">
-      <DependentUpon>LongRunningOperationDisplay.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="NotRunTree.resx">
-      <DependentUpon>NotRunTree.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="ProgressBar.resx">
-      <DependentUpon>ProgressBar.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="RenameConfigurationDialog.resx">
-      <DependentUpon>RenameConfigurationDialog.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="ResultTabs.resx">
-      <DependentUpon>ResultTabs.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="SettingsDialogBase.resx">
-      <DependentUpon>SettingsDialogBase.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="SettingsPage.resx">
-      <DependentUpon>SettingsPage.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="SimpleSettingsDialog.resx">
-      <DependentUpon>SimpleSettingsDialog.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="StatusBar.resx">
-      <DependentUpon>StatusBar.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="TabbedSettingsDialog.resx">
-      <DependentUpon>TabbedSettingsDialog.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="TestPropertiesDialog.resx">
-      <DependentUpon>TestPropertiesDialog.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="TestSuiteTreeView.resx">
-      <DependentUpon>TestSuiteTreeView.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="TestTree.resx">
-      <DependentUpon>TestTree.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="TextOutputSettingsPage.resx">
-      <DependentUpon>TextOutputSettingsPage.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="TipWindow.resx">
-      <DependentUpon>TipWindow.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="TreeBasedSettingsDialog.resx">
-      <DependentUpon>TreeBasedSettingsDialog.cs</DependentUpon>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Images\pinned.gif" />
-    <EmbeddedResource Include="Images\unpinned.gif" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Images\Tree\Classic\Ignored.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Ellipsis.gif" />
-    <Content Include="Images\Tree\Circles\Inconclusive.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Circles\Skipped.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Circles\Success.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Circles\Failure.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Circles\Ignored.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Classic\Failure.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Classic\Skipped.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Default\Failure.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Default\Ignored.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Classic\Inconclusive.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Default\Inconclusive.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Default\Skipped.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Classic\Success.jpg">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Default\Success.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Images\Tree\Visual Studio\Failure.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Visual Studio\Ignored.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Visual Studio\Inconclusive.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Visual Studio\Skipped.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <Content Include="Images\Tree\Visual Studio\Success.png">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </Content>
-    <None Include="nunit.uikit.build" />
-  </ItemGroup>
-  <ItemGroup>
-    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
-      <Visible>False</Visible>
-      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
-      <Install>false</Install>
-    </BootstrapperPackage>
-    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
-      <Visible>False</Visible>
-      <ProductName>.NET Framework 3.5 SP1</ProductName>
-      <Install>true</Install>
-    </BootstrapperPackage>
-    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
-      <Visible>False</Visible>
-      <ProductName>Windows Installer 3.1</ProductName>
-      <Install>true</Install>
-    </BootstrapperPackage>
-  </ItemGroup>
-  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
-  <PropertyGroup>
-    <PreBuildEvent>
-    </PreBuildEvent>
-    <PostBuildEvent>
-    </PostBuildEvent>
-  </PropertyGroup>
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"; ToolsVersion="4.0">
+  <PropertyGroup>
+    <ProjectType>Local</ProjectType>
+    <ProductVersion>9.0.30729</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{27531BBF-183D-4C3A-935B-D840B9F1A3A4}</ProjectGuid>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <AssemblyKeyContainerName>
+    </AssemblyKeyContainerName>
+    <AssemblyName>nunit.uikit</AssemblyName>
+    <DefaultClientScript>JScript</DefaultClientScript>
+    <DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
+    <DefaultTargetSchema>IE50</DefaultTargetSchema>
+    <DelaySign>false</DelaySign>
+    <OutputType>Library</OutputType>
+    <RootNamespace>NUnit.UiKit</RootNamespace>
+    <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
+    <FileUpgradeFlags>
+    </FileUpgradeFlags>
+    <UpgradeBackupLocation>
+    </UpgradeBackupLocation>
+    <OldToolsVersion>3.5</OldToolsVersion>
+    <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+    <PublishUrl>publish\</PublishUrl>
+    <Install>true</Install>
+    <InstallFrom>Disk</InstallFrom>
+    <UpdateEnabled>false</UpdateEnabled>
+    <UpdateMode>Foreground</UpdateMode>
+    <UpdateInterval>7</UpdateInterval>
+    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+    <UpdatePeriodically>false</UpdatePeriodically>
+    <UpdateRequired>false</UpdateRequired>
+    <MapFileExtensions>true</MapFileExtensions>
+    <ApplicationRevision>0</ApplicationRevision>
+    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+    <IsWebBootstrapper>false</IsWebBootstrapper>
+    <UseApplicationTrust>false</UseApplicationTrust>
+    <BootstrapperEnabled>true</BootstrapperEnabled>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <OutputPath>..\..\..\bin\Debug\lib\</OutputPath>
+    <BaseAddress>285212672</BaseAddress>
+    <ConfigurationOverrideFile>
+    </ConfigurationOverrideFile>
+    <DefineConstants>TRACE;DEBUG;CLR_2_0,NET_2_0,CS_3_0</DefineConstants>
+    <DocumentationFile>
+    </DocumentationFile>
+    <DebugSymbols>true</DebugSymbols>
+    <FileAlignment>4096</FileAlignment>
+    <NoWarn>1699</NoWarn>
+    <Optimize>false</Optimize>
+    <RegisterForComInterop>false</RegisterForComInterop>
+    <RemoveIntegerChecks>false</RemoveIntegerChecks>
+    <WarningLevel>4</WarningLevel>
+    <DebugType>full</DebugType>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <OutputPath>..\..\..\bin\Release\lib\</OutputPath>
+    <BaseAddress>285212672</BaseAddress>
+    <ConfigurationOverrideFile>
+    </ConfigurationOverrideFile>
+    <DefineConstants>TRACE;CLR_2_0,NET_2_0,CS_3_0</DefineConstants>
+    <DocumentationFile>
+    </DocumentationFile>
+    <FileAlignment>4096</FileAlignment>
+    <NoWarn>1699</NoWarn>
+    <Optimize>true</Optimize>
+    <RegisterForComInterop>false</RegisterForComInterop>
+    <RemoveIntegerChecks>false</RemoveIntegerChecks>
+    <WarningLevel>4</WarningLevel>
+    <DebugType>none</DebugType>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System">
+      <Name>System</Name>
+    </Reference>
+    <Reference Include="System.Data">
+      <Name>System.Data</Name>
+    </Reference>
+    <Reference Include="System.Drawing">
+      <Name>System.Drawing</Name>
+    </Reference>
+    <Reference Include="System.Windows.Forms">
+      <Name>System.Windows.Forms</Name>
+    </Reference>
+    <Reference Include="System.Xml">
+      <Name>System.XML</Name>
+    </Reference>
+    <ProjectReference Include="..\..\ClientUtilities\util\nunit.util.dll.csproj">
+      <Name>nunit.util.dll</Name>
+      <Project>{61CE9CE5-943E-44D4-A381-814DC1406767}</Project>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\NUnitCore\core\nunit.core.dll.csproj">
+      <Project>{EBD43A7F-AFCA-4281-BB53-5CDD91F966A3}</Project>
+      <Name>nunit.core.dll</Name>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\NUnitCore\interfaces\nunit.core.interfaces.dll.csproj">
+      <Name>nunit.core.interfaces.dll</Name>
+      <Project>{435428F8-5995-4CE4-8022-93D595A8CC0F}</Project>
+      <Private>False</Private>
+    </ProjectReference>
+    <ProjectReference Include="..\..\GuiException\UiException\nunit.uiexception.dll.csproj">
+      <Project>{3E87A106-EB20-4147-84C8-95B0BB43A1D4}</Project>
+      <Name>nunit.uiexception.dll</Name>
+      <Private>False</Private>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="..\..\CommonAssemblyInfo.cs">
+      <Link>CommonAssemblyInfo.cs</Link>
+    </Compile>
+    <Compile Include="AddConfigurationDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="AddTabPageDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="AppContainer.cs" />
+    <Compile Include="AssemblyInfo.cs" />
+    <Compile Include="ConfigurationEditor.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="EditTabPagesDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="ErrorDisplay.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ExpandingLabel.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="ExpandingTextBox.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="GuiAttachedConsole.cs" />
+    <Compile Include="GuiTestEventDispatcher.cs" />
+    <Compile Include="IMessageDisplay.cs" />
+    <Compile Include="LongRunningOperationDisplay.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="NotRunTree.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="NUnitFormBase.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="ProgressBar.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="RenameConfigurationDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="ResultTabs.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="ScrollingTextDisplayForm.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="SettingsDialogBase.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="SettingsPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="SimpleSettingsDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="StatusBar.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="TabbedSettingsDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="TestPropertiesDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="TestPropertiesDialog.Designer.cs">
+      <DependentUpon>TestPropertiesDialog.cs</DependentUpon>
+    </Compile>
+    <Compile Include="TestSuiteTreeNode.cs" />
+    <Compile Include="TestSuiteTreeView.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="TestTree.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="TextBoxDisplay.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="TextDisplayContent.cs" />
+    <Compile Include="TextDisplay.cs" />
+    <Compile Include="TextDisplayTabPage.cs">
+      <SubType>Component</SubType>
+    </Compile>
+    <Compile Include="TextDisplayTabSettings.cs" />
+    <Compile Include="TextDisplayWriter.cs" />
+    <Compile Include="TextOutputSettingsPage.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="TipWindow.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="TreeBasedSettingsDialog.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="MessageDisplay.cs" />
+    <Compile Include="VisualState.cs" />
+    <Compile Include="WaitCursor.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="AddConfigurationDialog.resx">
+      <DependentUpon>AddConfigurationDialog.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="AddTabPageDialog.resx">
+      <DependentUpon>AddTabPageDialog.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="ConfigurationEditor.resx">
+      <DependentUpon>ConfigurationEditor.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="EditTabPagesDialog.resx">
+      <DependentUpon>EditTabPagesDialog.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="ErrorDisplay.resx">
+      <DependentUpon>ErrorDisplay.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="ExpandingLabel.resx">
+      <DependentUpon>ExpandingLabel.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="ExpandingTextBox.resx">
+      <DependentUpon>ExpandingTextBox.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="LongRunningOperationDisplay.resx">
+      <DependentUpon>LongRunningOperationDisplay.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="NotRunTree.resx">
+      <DependentUpon>NotRunTree.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="ProgressBar.resx">
+      <DependentUpon>ProgressBar.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="RenameConfigurationDialog.resx">
+      <DependentUpon>RenameConfigurationDialog.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="ResultTabs.resx">
+      <DependentUpon>ResultTabs.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="SettingsDialogBase.resx">
+      <DependentUpon>SettingsDialogBase.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="SettingsPage.resx">
+      <DependentUpon>SettingsPage.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="SimpleSettingsDialog.resx">
+      <DependentUpon>SimpleSettingsDialog.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="StatusBar.resx">
+      <DependentUpon>StatusBar.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="TabbedSettingsDialog.resx">
+      <DependentUpon>TabbedSettingsDialog.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="TestPropertiesDialog.resx">
+      <DependentUpon>TestPropertiesDialog.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="TestSuiteTreeView.resx">
+      <DependentUpon>TestSuiteTreeView.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="TestTree.resx">
+      <DependentUpon>TestTree.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="TextOutputSettingsPage.resx">
+      <DependentUpon>TextOutputSettingsPage.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="TipWindow.resx">
+      <DependentUpon>TipWindow.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="TreeBasedSettingsDialog.resx">
+      <DependentUpon>TreeBasedSettingsDialog.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Images\pinned.gif" />
+    <EmbeddedResource Include="Images\unpinned.gif" />
+  </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Images\search.png" />
+    <Content Include="Images\Tree\Classic\Ignored.jpg">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Ellipsis.gif" />
+    <Content Include="Images\Tree\Circles\Inconclusive.jpg">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Circles\Skipped.jpg">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Circles\Success.jpg">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Circles\Failure.jpg">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Circles\Ignored.jpg">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Classic\Failure.jpg">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Classic\Skipped.jpg">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Default\Failure.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Default\Ignored.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Classic\Inconclusive.jpg">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Default\Inconclusive.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Default\Skipped.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Classic\Success.jpg">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Default\Success.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Images\Tree\Visual Studio\Failure.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Visual Studio\Ignored.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Visual Studio\Inconclusive.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Visual Studio\Skipped.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Images\Tree\Visual Studio\Success.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <None Include="nunit.uikit.build" />
+  </ItemGroup>
+  <ItemGroup>
+    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+      <Install>false</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
+      <Visible>False</Visible>
+      <ProductName>.NET Framework 3.5 SP1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+      <Visible>False</Visible>
+      <ProductName>Windows Installer 3.1</ProductName>
+      <Install>true</Install>
+    </BootstrapperPackage>
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <PropertyGroup>
+    <PreBuildEvent>
+    </PreBuildEvent>
+    <PostBuildEvent>
+    </PostBuildEvent>
+  </PropertyGroup>
 </Project>
\ No newline at end of file