Browse Source

Updated to match coding guidelines (whitespace, brackets etc)

tznind 4 years ago
parent
commit
dc22a890e9

File diff suppressed because it is too large
+ 226 - 236
Terminal.Gui/Views/TreeView.cs


+ 102 - 95
UICatalog/Scenarios/ClassExplorer.cs

@@ -30,8 +30,8 @@ namespace UICatalog.Scenarios {
 				Type = type;
 				Type = type;
 			}
 			}
 
 
-			public Type Type {get;set;}
-			public Showable ToShow {get;set;}
+			public Type Type { get; set; }
+			public Showable ToShow { get; set; }
 
 
 			// Make sure to implement Equals methods on your objects if you intend to return new instances every time in ChildGetter
 			// Make sure to implement Equals methods on your objects if you intend to return new instances every time in ChildGetter
 			public override bool Equals (object obj)
 			public override bool Equals (object obj)
@@ -48,17 +48,17 @@ namespace UICatalog.Scenarios {
 
 
 			public override string ToString ()
 			public override string ToString ()
 			{
 			{
-				return ToShow.ToString();
+				return ToShow.ToString ();
 			}
 			}
 		}
 		}
 
 
 		public override void Setup ()
 		public override void Setup ()
 		{
 		{
-			Win.Title = this.GetName();
+			Win.Title = this.GetName ();
 			Win.Y = 1; // menu
 			Win.Y = 1; // menu
 			Win.Height = Dim.Fill (1); // status bar
 			Win.Height = Dim.Fill (1); // status bar
-			Top.LayoutSubviews();
-						
+			Top.LayoutSubviews ();
+
 			var menu = new MenuBar (new MenuBarItem [] {
 			var menu = new MenuBar (new MenuBarItem [] {
 				new MenuBarItem ("_File", new MenuItem [] {
 				new MenuBarItem ("_File", new MenuItem [] {
 					new MenuItem ("_Quit", "", () => Quit()),
 					new MenuItem ("_Quit", "", () => Quit()),
@@ -77,115 +77,116 @@ namespace UICatalog.Scenarios {
 			treeView = new TreeView<object> () {
 			treeView = new TreeView<object> () {
 				X = 0,
 				X = 0,
 				Y = 0,
 				Y = 0,
-				Width = Dim.Percent(50),
-				Height = Dim.Fill(),
+				Width = Dim.Percent (50),
+				Height = Dim.Fill (),
 			};
 			};
 
 
 
 
-			treeView.AddObjects(AppDomain.CurrentDomain.GetAssemblies());
+			treeView.AddObjects (AppDomain.CurrentDomain.GetAssemblies ());
 			treeView.AspectGetter = GetRepresentation;
 			treeView.AspectGetter = GetRepresentation;
-			treeView.TreeBuilder = new DelegateTreeBuilder<object>(ChildGetter,CanExpand);
+			treeView.TreeBuilder = new DelegateTreeBuilder<object> (ChildGetter, CanExpand);
 			treeView.SelectionChanged += TreeView_SelectionChanged;
 			treeView.SelectionChanged += TreeView_SelectionChanged;
 
 
-			Win.Add(treeView);
+			Win.Add (treeView);
 
 
-			textView = new TextView (){
-				X = Pos.Right(treeView),
+			textView = new TextView () {
+				X = Pos.Right (treeView),
 				Y = 0,
 				Y = 0,
-				Width = Dim.Fill(),
-				Height = Dim.Fill()
-				};
+				Width = Dim.Fill (),
+				Height = Dim.Fill ()
+			};
 
 
-			Win.Add(textView);
+			Win.Add (textView);
 		}
 		}
 
 
 		private void ShowPrivate ()
 		private void ShowPrivate ()
 		{
 		{
 			miShowPrivate.Checked = !miShowPrivate.Checked;
 			miShowPrivate.Checked = !miShowPrivate.Checked;
-			treeView.RebuildTree();
-			treeView.SetFocus();
+			treeView.RebuildTree ();
+			treeView.SetFocus ();
 		}
 		}
 
 
-		private BindingFlags GetFlags()
+		private BindingFlags GetFlags ()
 		{
 		{
-			if(miShowPrivate.Checked)
+			if (miShowPrivate.Checked) {
 				return BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
 				return BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
-			
+			}
+
 			return BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public;
 			return BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public;
 		}
 		}
 
 
 		private void TreeView_SelectionChanged (object sender, SelectionChangedEventArgs<object> e)
 		private void TreeView_SelectionChanged (object sender, SelectionChangedEventArgs<object> e)
 		{
 		{
 			var val = e.NewValue;
 			var val = e.NewValue;
-			var all = treeView.GetAllSelectedObjects().ToArray();
+			var all = treeView.GetAllSelectedObjects ().ToArray ();
 
 
-			if(val == null || val is ShowForType)
+			if (val == null || val is ShowForType) {
 				return;
 				return;
+			}
+
 			try {
 			try {
-				
-				if(all.Length > 1){
 
 
-					textView.Text = all.Length  + " Objects";
-				}
-				else
-				{
-					StringBuilder sb = new StringBuilder();
+				if (all.Length > 1) {
+
+					textView.Text = all.Length + " Objects";
+				} else {
+					StringBuilder sb = new StringBuilder ();
 
 
 					// tell the user about the currently selected tree node
 					// tell the user about the currently selected tree node
-					sb.AppendLine(e.NewValue.GetType().Name);
-					
-					if(val is Assembly ass) {
-						sb.AppendLine($"Location:{ass.Location}");
-						sb.AppendLine($"FullName:{ass.FullName}");
+					sb.AppendLine (e.NewValue.GetType ().Name);
+
+					if (val is Assembly ass) {
+						sb.AppendLine ($"Location:{ass.Location}");
+						sb.AppendLine ($"FullName:{ass.FullName}");
 					}
 					}
 
 
-					if(val is PropertyInfo p) {
-						sb.AppendLine($"Name:{p.Name}");
-						sb.AppendLine($"Type:{p.PropertyType}");
-						sb.AppendLine($"CanWrite:{p.CanWrite}");
-						sb.AppendLine($"CanRead:{p.CanRead}");
+					if (val is PropertyInfo p) {
+						sb.AppendLine ($"Name:{p.Name}");
+						sb.AppendLine ($"Type:{p.PropertyType}");
+						sb.AppendLine ($"CanWrite:{p.CanWrite}");
+						sb.AppendLine ($"CanRead:{p.CanRead}");
 					}
 					}
-				
-					if(val is FieldInfo f) {
-						sb.AppendLine($"Name:{f.Name}");
-						sb.AppendLine($"Type:{f.FieldType}");
+
+					if (val is FieldInfo f) {
+						sb.AppendLine ($"Name:{f.Name}");
+						sb.AppendLine ($"Type:{f.FieldType}");
 					}
 					}
-							
-					if(val is EventInfo ev) {
-						sb.AppendLine($"Name:{ev.Name}");
-						sb.AppendLine($"Parameters:");
-						foreach(var parameter in ev.EventHandlerType.GetMethod("Invoke").GetParameters()) {
-							sb.AppendLine($"  {parameter.ParameterType} {parameter.Name}");
+
+					if (val is EventInfo ev) {
+						sb.AppendLine ($"Name:{ev.Name}");
+						sb.AppendLine ($"Parameters:");
+						foreach (var parameter in ev.EventHandlerType.GetMethod ("Invoke").GetParameters ()) {
+							sb.AppendLine ($"  {parameter.ParameterType} {parameter.Name}");
 						}
 						}
 					}
 					}
-						
-					if(val is MethodInfo method) {
-						sb.AppendLine($"Name:{method.Name}");
-						sb.AppendLine($"IsPublic:{method.IsPublic}");
-						sb.AppendLine($"IsStatic:{method.IsStatic}");
-						sb.AppendLine($"Parameters:{(method.GetParameters().Any() ? "":"None")}");
-						foreach(var parameter in method.GetParameters()) {
-							sb.AppendLine($"  {parameter.ParameterType} {parameter.Name}");
+
+					if (val is MethodInfo method) {
+						sb.AppendLine ($"Name:{method.Name}");
+						sb.AppendLine ($"IsPublic:{method.IsPublic}");
+						sb.AppendLine ($"IsStatic:{method.IsStatic}");
+						sb.AppendLine ($"Parameters:{(method.GetParameters ().Any () ? "" : "None")}");
+						foreach (var parameter in method.GetParameters ()) {
+							sb.AppendLine ($"  {parameter.ParameterType} {parameter.Name}");
 						}
 						}
 					}
 					}
-				
-						
-					if(val is ConstructorInfo ctor) {
-						sb.AppendLine($"Name:{ctor.Name}");
-						sb.AppendLine($"Parameters:{(ctor.GetParameters().Any() ? "":"None")}");
-						foreach(var parameter in ctor.GetParameters()) {
-							sb.AppendLine($"  {parameter.ParameterType} {parameter.Name}");
+
+
+					if (val is ConstructorInfo ctor) {
+						sb.AppendLine ($"Name:{ctor.Name}");
+						sb.AppendLine ($"Parameters:{(ctor.GetParameters ().Any () ? "" : "None")}");
+						foreach (var parameter in ctor.GetParameters ()) {
+							sb.AppendLine ($"  {parameter.ParameterType} {parameter.Name}");
 						}
 						}
 					}
 					}
 
 
-					textView.Text = sb.ToString().Replace("\r\n","\n");
+					textView.Text = sb.ToString ().Replace ("\r\n", "\n");
 				}
 				}
-								
+
 			} catch (Exception ex) {
 			} catch (Exception ex) {
 
 
 				textView.Text = ex.Message;
 				textView.Text = ex.Message;
 			}
 			}
-			textView.SetNeedsDisplay();
+			textView.SetNeedsDisplay ();
 		}
 		}
 
 
 		private bool CanExpand (object arg)
 		private bool CanExpand (object arg)
@@ -196,52 +197,58 @@ namespace UICatalog.Scenarios {
 		private IEnumerable<object> ChildGetter (object arg)
 		private IEnumerable<object> ChildGetter (object arg)
 		{
 		{
 			try {
 			try {
-				if(arg is Assembly a) {
-					return a.GetTypes();
+				if (arg is Assembly a) {
+					return a.GetTypes ();
 				}
 				}
 
 
-				if(arg is Type t) {
+				if (arg is Type t) {
 					// Note that here we cannot simply return the enum values as the same object cannot appear under multiple branches
 					// Note that here we cannot simply return the enum values as the same object cannot appear under multiple branches
-					return Enum.GetValues(typeof(Showable))
-						.Cast<Showable>()
+					return Enum.GetValues (typeof (Showable))
+						.Cast<Showable> ()
 						// Although we new the Type every time the delegate is called state is preserved because the class has appropriate equality members
 						// Although we new the Type every time the delegate is called state is preserved because the class has appropriate equality members
-						.Select(v=>new ShowForType(v,t));
+						.Select (v => new ShowForType (v, t));
 				}
 				}
 
 
-				if(arg is ShowForType show) {
-					switch(show.ToShow) {
-						case Showable.Properties:
-							return show.Type.GetProperties(GetFlags());
-						case Showable.Constructors:
-							return show.Type.GetConstructors(GetFlags());
-						case Showable.Events:
-							return show.Type.GetEvents(GetFlags());
-						case Showable.Fields:
-							return show.Type.GetFields(GetFlags());
-						case Showable.Methods:
-							return show.Type.GetMethods(GetFlags());
+				if (arg is ShowForType show) {
+					switch (show.ToShow) {
+					case Showable.Properties:
+						return show.Type.GetProperties (GetFlags ());
+					case Showable.Constructors:
+						return show.Type.GetConstructors (GetFlags ());
+					case Showable.Events:
+						return show.Type.GetEvents (GetFlags ());
+					case Showable.Fields:
+						return show.Type.GetFields (GetFlags ());
+					case Showable.Methods:
+						return show.Type.GetMethods (GetFlags ());
 					}
 					}
 				}
 				}
 
 
 			} catch (Exception) {
 			} catch (Exception) {
-				return Enumerable.Empty<object>();
+				return Enumerable.Empty<object> ();
 			}
 			}
-			return Enumerable.Empty<object>();
+			return Enumerable.Empty<object> ();
 		}
 		}
 
 
 		private string GetRepresentation (object model)
 		private string GetRepresentation (object model)
 		{
 		{
 			try {
 			try {
-				if(model is Assembly ass) {
-					return ass.GetName().Name;
+				if (model is Assembly ass) {
+					return ass.GetName ().Name;
 				}
 				}
 
 
-				if(model is PropertyInfo p)
+				if (model is PropertyInfo p) {
 					return p.Name;
 					return p.Name;
-				if(model is FieldInfo f)
+				}
+
+				if (model is FieldInfo f) {
 					return f.Name;
 					return f.Name;
-				if(model is EventInfo ei)
+				}
+
+				if (model is EventInfo ei) {
 					return ei.Name;
 					return ei.Name;
+				}
+
 
 
 
 
 			} catch (Exception ex) {
 			} catch (Exception ex) {
@@ -249,7 +256,7 @@ namespace UICatalog.Scenarios {
 				return ex.Message;
 				return ex.Message;
 			}
 			}
 
 
-			return model.ToString();
+			return model.ToString ();
 		}
 		}
 		private void Quit ()
 		private void Quit ()
 		{
 		{

+ 47 - 48
UICatalog/Scenarios/InteractiveTree.cs

@@ -10,33 +10,33 @@ namespace UICatalog.Scenarios {
 
 
 	[ScenarioMetadata (Name: "Interactive Tree", Description: "Create nodes and child nodes in TreeView")]
 	[ScenarioMetadata (Name: "Interactive Tree", Description: "Create nodes and child nodes in TreeView")]
 	[ScenarioCategory ("Controls")]
 	[ScenarioCategory ("Controls")]
-	class InteractiveTree : Scenario{
+	class InteractiveTree : Scenario {
 
 
 		TreeView treeView;
 		TreeView treeView;
 
 
 		public override void Setup ()
 		public override void Setup ()
 		{
 		{
-			Win.Title = this.GetName();
+			Win.Title = this.GetName ();
 			Win.Y = 1; // menu
 			Win.Y = 1; // menu
 			Win.Height = Dim.Fill (1); // status bar
 			Win.Height = Dim.Fill (1); // status bar
 			Top.LayoutSubviews ();
 			Top.LayoutSubviews ();
-			
+
 			var menu = new MenuBar (new MenuBarItem [] {
 			var menu = new MenuBar (new MenuBarItem [] {
 				new MenuBarItem ("_File", new MenuItem [] {
 				new MenuBarItem ("_File", new MenuItem [] {
 					new MenuItem ("_Quit", "", () => Quit()),
 					new MenuItem ("_Quit", "", () => Quit()),
-				}) 
+				})
 				});
 				});
-			Top.Add(menu);
-			
-			treeView = new TreeView() {
+			Top.Add (menu);
+
+			treeView = new TreeView () {
 				X = 0,
 				X = 0,
 				Y = 0,
 				Y = 0,
-				Width = Dim.Fill(),
-				Height = Dim.Fill(1),
+				Width = Dim.Fill (),
+				Height = Dim.Fill (1),
 			};
 			};
 			treeView.KeyPress += TreeView_KeyPress;
 			treeView.KeyPress += TreeView_KeyPress;
-			
-			Win.Add(treeView);
+
+			Win.Add (treeView);
 
 
 			var statusBar = new StatusBar (new StatusItem [] {
 			var statusBar = new StatusBar (new StatusItem [] {
 				new StatusItem(Key.CtrlMask | Key.Q, "~^Q~ Quit", () => Quit()),
 				new StatusItem(Key.CtrlMask | Key.Q, "~^Q~ Quit", () => Quit()),
@@ -50,30 +50,30 @@ namespace UICatalog.Scenarios {
 
 
 		private void TreeView_KeyPress (View.KeyEventEventArgs obj)
 		private void TreeView_KeyPress (View.KeyEventEventArgs obj)
 		{
 		{
-			if(obj.KeyEvent.Key == Key.DeleteChar) {
+			if (obj.KeyEvent.Key == Key.DeleteChar) {
 
 
 				var toDelete = treeView.SelectedObject;
 				var toDelete = treeView.SelectedObject;
 
 
-				if(toDelete == null)
+				if (toDelete == null) {
 					return;
 					return;
-				
+				}
+
 				obj.Handled = true;
 				obj.Handled = true;
 
 
 				// if it is a root object remove it
 				// if it is a root object remove it
-				if(treeView.Objects.Contains(toDelete)) {
-					treeView.Remove(toDelete);
-				}
-				else {
-					var parent = treeView.GetParent(toDelete);
-
-					if(parent == null)
-						MessageBox.ErrorQuery("Could not delete",$"Parent of '{toDelete}' was unexpectedly null","Ok");
-					else {
+				if (treeView.Objects.Contains (toDelete)) {
+					treeView.Remove (toDelete);
+				} else {
+					var parent = treeView.GetParent (toDelete);
+
+					if (parent == null) {
+						MessageBox.ErrorQuery ("Could not delete", $"Parent of '{toDelete}' was unexpectedly null", "Ok");
+					} else {
 						//update the model
 						//update the model
-						parent.Children.Remove(toDelete);
+						parent.Children.Remove (toDelete);
 
 
 						//refresh the tree
 						//refresh the tree
-						treeView.RefreshObject(parent);
+						treeView.RefreshObject (parent);
 					}
 					}
 				}
 				}
 			}
 			}
@@ -83,34 +83,34 @@ namespace UICatalog.Scenarios {
 		{
 		{
 			var node = treeView.SelectedObject;
 			var node = treeView.SelectedObject;
 
 
-			if(node != null) {
-				if(GetText("Text","Enter text for node:",node.Text,out string entered)) {
+			if (node != null) {
+				if (GetText ("Text", "Enter text for node:", node.Text, out string entered)) {
 					node.Text = entered;
 					node.Text = entered;
-					treeView.RefreshObject(node);
+					treeView.RefreshObject (node);
 				}
 				}
 			}
 			}
 		}
 		}
 
 
 		private void AddRootNode ()
 		private void AddRootNode ()
 		{
 		{
-			if(GetText("Text","Enter text for node:","",out string entered)) {
-				treeView.AddObject(new TreeNode(entered));
+			if (GetText ("Text", "Enter text for node:", "", out string entered)) {
+				treeView.AddObject (new TreeNode (entered));
 			}
 			}
 		}
 		}
 
 
-		private void AddChildNode()
+		private void AddChildNode ()
 		{
 		{
 			var node = treeView.SelectedObject;
 			var node = treeView.SelectedObject;
 
 
-			if(node != null) {
-				if(GetText("Text","Enter text for node:","",out string entered)) {
-					node.Children.Add(new TreeNode(entered));
-					treeView.RefreshObject(node);
+			if (node != null) {
+				if (GetText ("Text", "Enter text for node:", "", out string entered)) {
+					node.Children.Add (new TreeNode (entered));
+					treeView.RefreshObject (node);
 				}
 				}
 			}
 			}
 		}
 		}
 
 
-		private bool GetText(string title, string label, string initialText, out string enteredText)
+		private bool GetText (string title, string label, string initialText, out string enteredText)
 		{
 		{
 			bool okPressed = false;
 			bool okPressed = false;
 
 
@@ -120,26 +120,25 @@ namespace UICatalog.Scenarios {
 			cancel.Clicked += () => { Application.RequestStop (); };
 			cancel.Clicked += () => { Application.RequestStop (); };
 			var d = new Dialog (title, 60, 20, ok, cancel);
 			var d = new Dialog (title, 60, 20, ok, cancel);
 
 
-			var lbl = new Label() {
+			var lbl = new Label () {
 				X = 0,
 				X = 0,
 				Y = 1,
 				Y = 1,
 				Text = label
 				Text = label
 			};
 			};
 
 
-			var tf = new TextField()
-				{
-					Text = initialText,
-					X = 0,
-					Y = 2,
-					Width = Dim.Fill()
-				};
-			
-			d.Add (lbl,tf);
-			tf.SetFocus();
+			var tf = new TextField () {
+				Text = initialText,
+				X = 0,
+				Y = 2,
+				Width = Dim.Fill ()
+			};
+
+			d.Add (lbl, tf);
+			tf.SetFocus ();
 
 
 			Application.Run (d);
 			Application.Run (d);
 
 
-			enteredText = okPressed? tf.Text.ToString() : null;
+			enteredText = okPressed ? tf.Text.ToString () : null;
 			return okPressed;
 			return okPressed;
 		}
 		}
 
 

+ 99 - 101
UICatalog/Scenarios/TreeUseCases.cs

@@ -9,15 +9,15 @@ namespace UICatalog.Scenarios {
 	[ScenarioCategory ("Controls")]
 	[ScenarioCategory ("Controls")]
 	class TreeUseCases : Scenario {
 	class TreeUseCases : Scenario {
 
 
-        View currentTree;
+		View currentTree;
 
 
-	    public override void Setup ()
+		public override void Setup ()
 		{
 		{
-			Win.Title = this.GetName();
+			Win.Title = this.GetName ();
 			Win.Y = 1; // menu
 			Win.Y = 1; // menu
 			Win.Height = Dim.Fill (1); // status bar
 			Win.Height = Dim.Fill (1); // status bar
 			Top.LayoutSubviews ();
 			Top.LayoutSubviews ();
-			
+
 			var menu = new MenuBar (new MenuBarItem [] {
 			var menu = new MenuBar (new MenuBarItem [] {
 				new MenuBarItem ("_File", new MenuItem [] {
 				new MenuBarItem ("_File", new MenuItem [] {
 					new MenuItem ("_Quit", "", () => Quit()),
 					new MenuItem ("_Quit", "", () => Quit()),
@@ -29,8 +29,8 @@ namespace UICatalog.Scenarios {
 					new MenuItem ("_Armies With Delegate", "", () => LoadArmies(true)),
 					new MenuItem ("_Armies With Delegate", "", () => LoadArmies(true)),
 				}),
 				}),
 			});
 			});
-			
-            Top.Add (menu);
+
+			Top.Add (menu);
 
 
 			var statusBar = new StatusBar (new StatusItem [] {
 			var statusBar = new StatusBar (new StatusItem [] {
 				new StatusItem(Key.CtrlMask | Key.Q, "~^Q~ Quit", () => Quit()),
 				new StatusItem(Key.CtrlMask | Key.Q, "~^Q~ Quit", () => Quit()),
@@ -38,85 +38,82 @@ namespace UICatalog.Scenarios {
 
 
 			Top.Add (statusBar);
 			Top.Add (statusBar);
 
 
-            // Start with the most basic use case
-            LoadSimpleNodes();
-        }
+			// Start with the most basic use case
+			LoadSimpleNodes ();
+		}
 
 
-        // Your data class
+		// Your data class
 		private class House : TreeNode {
 		private class House : TreeNode {
 
 
-            // Your properties
-            public string Address {get;set;}
-            public List<Room> Rooms {get;set;}
+			// Your properties
+			public string Address { get; set; }
+			public List<Room> Rooms { get; set; }
 
 
-            // ITreeNode member:
-			public override IList<ITreeNode> Children => Rooms.Cast<ITreeNode>().ToList();
+			// ITreeNode member:
+			public override IList<ITreeNode> Children => Rooms.Cast<ITreeNode> ().ToList ();
 
 
 			public override string Text { get => Address; set => Address = value; }
 			public override string Text { get => Address; set => Address = value; }
 		}
 		}
-		private class Room : TreeNode{
-            
-            public string Name {get;set;}
+		private class Room : TreeNode {
 
 
-			public override string Text{get=>Name;set{Name=value;}}
-        }
+			public string Name { get; set; }
 
 
-		private void LoadRooms()
+			public override string Text { get => Name; set { Name = value; } }
+		}
+
+		private void LoadRooms ()
 		{
 		{
-            var myHouse = new House()
-            {
-                Address = "23 Nowhere Street",
-                Rooms = new List<Room>{
-                    new Room(){Name = "Ballroom"},
-                    new Room(){Name = "Bedroom 1"},
-                    new Room(){Name = "Bedroom 2"}
-                }
-            };
-
-            if(currentTree != null)
-                Win.Remove(currentTree);
-
-			var tree = new TreeView()
-			{
-                X = 0,
-                Y = 0,
+			var myHouse = new House () {
+				Address = "23 Nowhere Street",
+				Rooms = new List<Room>{
+		    new Room(){Name = "Ballroom"},
+		    new Room(){Name = "Bedroom 1"},
+		    new Room(){Name = "Bedroom 2"}
+		}
+			};
+
+			if (currentTree != null) {
+				Win.Remove (currentTree);
+			}
+
+
+			var tree = new TreeView () {
+				X = 0,
+				Y = 0,
 				Width = 40,
 				Width = 40,
 				Height = 20
 				Height = 20
 			};
 			};
 
 
-            Win.Add(tree);
+			Win.Add (tree);
 
 
-            tree.AddObject(myHouse);
+			tree.AddObject (myHouse);
 
 
-            currentTree = tree;
+			currentTree = tree;
 		}
 		}
 
 
 
 
 
 
-        private abstract class GameObject
-        {
+		private abstract class GameObject {
 
 
-        }
-        private class Army : GameObject
-        {
-            public string Designation {get;set;}
-            public List<Unit> Units {get;set;}
+		}
+		private class Army : GameObject {
+			public string Designation { get; set; }
+			public List<Unit> Units { get; set; }
 
 
 
 
 			public override string ToString ()
 			public override string ToString ()
 			{
 			{
 				return Designation;
 				return Designation;
 			}
 			}
-        }
+		}
 
 
-        private class Unit : GameObject
-        {
-            public string Name {get;set;}
+		private class Unit : GameObject {
+			public string Name { get; set; }
 			public override string ToString ()
 			public override string ToString ()
 			{
 			{
 				return Name;
 				return Name;
 			}
 			}
-        }
+		}
 
 
 		private class GameObjectTreeBuilder : ITreeBuilder<GameObject> {
 		private class GameObjectTreeBuilder : ITreeBuilder<GameObject> {
 			public bool SupportsCanExpand => true;
 			public bool SupportsCanExpand => true;
@@ -128,49 +125,49 @@ namespace UICatalog.Scenarios {
 
 
 			public IEnumerable<GameObject> GetChildren (GameObject model)
 			public IEnumerable<GameObject> GetChildren (GameObject model)
 			{
 			{
-                if(model is Army a)
-                    return a.Units;
+				if (model is Army a) {
+					return a.Units;
+				}
 
 
-				return Enumerable.Empty<GameObject>();
+				return Enumerable.Empty<GameObject> ();
 			}
 			}
 		}
 		}
 
 
 
 
-		private void LoadArmies(bool useDelegate)
+		private void LoadArmies (bool useDelegate)
 		{
 		{
-            var army1 = new Army()
-            {
-                Designation = "3rd Infantry",
-                Units = new List<Unit>{
-                    new Unit(){Name = "Orc"},
-                    new Unit(){Name = "Troll"},
-                    new Unit(){Name = "Goblin"},
-                }
-            };
-
-            if(currentTree != null)
-                Win.Remove(currentTree);
-
-			var tree = new TreeView<GameObject>()
-			{
-                X = 0,
-                Y = 0,
+			var army1 = new Army () {
+				Designation = "3rd Infantry",
+				Units = new List<Unit>{
+		    new Unit(){Name = "Orc"},
+		    new Unit(){Name = "Troll"},
+		    new Unit(){Name = "Goblin"},
+		}
+			};
+
+			if (currentTree != null) {
+				Win.Remove (currentTree);
+			}
+
+
+			var tree = new TreeView<GameObject> () {
+				X = 0,
+				Y = 0,
 				Width = 40,
 				Width = 40,
 				Height = 20
 				Height = 20
 			};
 			};
 
 
-            if(useDelegate){
-                tree.TreeBuilder = new DelegateTreeBuilder<GameObject>((o)=>o is Army a ? a.Units : Enumerable.Empty<GameObject>());
-            }
-            else{
-                tree.TreeBuilder = new GameObjectTreeBuilder();
-            }
+			if (useDelegate) {
+				tree.TreeBuilder = new DelegateTreeBuilder<GameObject> ((o) => o is Army a ? a.Units : Enumerable.Empty<GameObject> ());
+			} else {
+				tree.TreeBuilder = new GameObjectTreeBuilder ();
+			}
 
 
-            Win.Add(tree);
+			Win.Add (tree);
 
 
-            tree.AddObject(army1);
+			tree.AddObject (army1);
 
 
-            currentTree = tree;
+			currentTree = tree;
 		}
 		}
 
 
 		private void Quit ()
 		private void Quit ()
@@ -178,33 +175,34 @@ namespace UICatalog.Scenarios {
 			Application.RequestStop ();
 			Application.RequestStop ();
 		}
 		}
 
 
-		private void LoadSimpleNodes()
+		private void LoadSimpleNodes ()
 		{
 		{
-            if(currentTree != null)
-                Win.Remove(currentTree);
+			if (currentTree != null) {
+				Win.Remove (currentTree);
+			}
 
 
-			var tree = new TreeView()
-			{
-                X = 0,
-                Y = 0,
+
+			var tree = new TreeView () {
+				X = 0,
+				Y = 0,
 				Width = 40,
 				Width = 40,
 				Height = 20
 				Height = 20
 			};
 			};
 
 
-            Win.Add(tree);
+			Win.Add (tree);
+
+			var root1 = new TreeNode ("Root1");
+			root1.Children.Add (new TreeNode ("Child1.1"));
+			root1.Children.Add (new TreeNode ("Child1.2"));
 
 
-			var root1 = new TreeNode("Root1");
-			root1.Children.Add(new TreeNode("Child1.1"));
-			root1.Children.Add(new TreeNode("Child1.2"));
+			var root2 = new TreeNode ("Root2");
+			root2.Children.Add (new TreeNode ("Child2.1"));
+			root2.Children.Add (new TreeNode ("Child2.2"));
 
 
-			var root2 = new TreeNode("Root2");
-			root2.Children.Add(new TreeNode("Child2.1"));
-			root2.Children.Add(new TreeNode("Child2.2"));
-		
-			tree.AddObject(root1);
-			tree.AddObject(root2);
+			tree.AddObject (root1);
+			tree.AddObject (root2);
 
 
-            currentTree = tree;
+			currentTree = tree;
 
 
 		}
 		}
 	}
 	}

+ 57 - 54
UICatalog/Scenarios/TreeViewFileSystem.cs

@@ -28,11 +28,11 @@ namespace UICatalog.Scenarios {
 
 
 		public override void Setup ()
 		public override void Setup ()
 		{
 		{
-			Win.Title = this.GetName();
+			Win.Title = this.GetName ();
 			Win.Y = 1; // menu
 			Win.Y = 1; // menu
 			Win.Height = Dim.Fill (1); // status bar
 			Win.Height = Dim.Fill (1); // status bar
 			Top.LayoutSubviews ();
 			Top.LayoutSubviews ();
-			
+
 			var menu = new MenuBar (new MenuBarItem [] {
 			var menu = new MenuBar (new MenuBarItem [] {
 				new MenuBarItem ("_File", new MenuItem [] {
 				new MenuBarItem ("_File", new MenuItem [] {
 					new MenuItem ("_Quit", "", () => Quit()),
 					new MenuItem ("_Quit", "", () => Quit()),
@@ -60,26 +60,26 @@ namespace UICatalog.Scenarios {
 			});
 			});
 			Top.Add (statusBar);
 			Top.Add (statusBar);
 
 
-			var lblFiles = new Label("File Tree:"){
-				X=0,
-				Y=1
+			var lblFiles = new Label ("File Tree:") {
+				X = 0,
+				Y = 1
 			};
 			};
-			Win.Add(lblFiles);
+			Win.Add (lblFiles);
 
 
 			treeViewFiles = new TreeView<FileSystemInfo> () {
 			treeViewFiles = new TreeView<FileSystemInfo> () {
 				X = 0,
 				X = 0,
-				Y = Pos.Bottom(lblFiles),
-				Width = Dim.Fill(),
-				Height = Dim.Fill(),
+				Y = Pos.Bottom (lblFiles),
+				Width = Dim.Fill (),
+				Height = Dim.Fill (),
 			};
 			};
-			
-			SetupFileTree();
-
-			Win.Add(treeViewFiles);
-			
-			SetupScrollBar();
-						
-			green = Application.Driver.MakeAttribute (Color.Green, Color.Blue);			
+
+			SetupFileTree ();
+
+			Win.Add (treeViewFiles);
+
+			SetupScrollBar ();
+
+			green = Application.Driver.MakeAttribute (Color.Green, Color.Blue);
 			red = Application.Driver.MakeAttribute (Color.Red, Color.Blue);
 			red = Application.Driver.MakeAttribute (Color.Red, Color.Blue);
 		}
 		}
 
 
@@ -97,7 +97,7 @@ namespace UICatalog.Scenarios {
 				}
 				}
 				treeViewFiles.SetNeedsDisplay ();
 				treeViewFiles.SetNeedsDisplay ();
 			};
 			};
-			
+
 			_scrollBar.OtherScrollBarView.ChangedPosition += () => {
 			_scrollBar.OtherScrollBarView.ChangedPosition += () => {
 				treeViewFiles.ScrollOffsetHorizontal = _scrollBar.OtherScrollBarView.Position;
 				treeViewFiles.ScrollOffsetHorizontal = _scrollBar.OtherScrollBarView.Position;
 				if (treeViewFiles.ScrollOffsetHorizontal != _scrollBar.OtherScrollBarView.Position) {
 				if (treeViewFiles.ScrollOffsetHorizontal != _scrollBar.OtherScrollBarView.Position) {
@@ -105,11 +105,11 @@ namespace UICatalog.Scenarios {
 				}
 				}
 				treeViewFiles.SetNeedsDisplay ();
 				treeViewFiles.SetNeedsDisplay ();
 			};
 			};
-			
+
 			treeViewFiles.DrawContent += (e) => {
 			treeViewFiles.DrawContent += (e) => {
 				_scrollBar.Size = treeViewFiles.ContentHeight;
 				_scrollBar.Size = treeViewFiles.ContentHeight;
 				_scrollBar.Position = treeViewFiles.ScrollOffsetVertical;
 				_scrollBar.Position = treeViewFiles.ScrollOffsetVertical;
-				_scrollBar.OtherScrollBarView.Size = treeViewFiles.GetContentWidth(true);
+				_scrollBar.OtherScrollBarView.Size = treeViewFiles.GetContentWidth (true);
 				_scrollBar.OtherScrollBarView.Position = treeViewFiles.ScrollOffsetHorizontal;
 				_scrollBar.OtherScrollBarView.Position = treeViewFiles.ScrollOffsetHorizontal;
 				_scrollBar.Refresh ();
 				_scrollBar.Refresh ();
 			};
 			};
@@ -117,20 +117,20 @@ namespace UICatalog.Scenarios {
 
 
 		private void SetupFileTree ()
 		private void SetupFileTree ()
 		{
 		{
-			
+
 			// setup delegates
 			// setup delegates
-			treeViewFiles.TreeBuilder = new DelegateTreeBuilder<FileSystemInfo>(
+			treeViewFiles.TreeBuilder = new DelegateTreeBuilder<FileSystemInfo> (
 
 
 				// Determines how to compute children of any given branch
 				// Determines how to compute children of any given branch
 				GetChildren,
 				GetChildren,
 				// As a shortcut to enumerating half the file system, tell tree that all directories are expandable (even if they turn out to be empty later on)				
 				// As a shortcut to enumerating half the file system, tell tree that all directories are expandable (even if they turn out to be empty later on)				
-				(o)=>o is DirectoryInfo
+				(o) => o is DirectoryInfo
 			);
 			);
 
 
 			// Determines how to represent objects as strings on the screen
 			// Determines how to represent objects as strings on the screen
 			treeViewFiles.AspectGetter = FileSystemAspectGetter;
 			treeViewFiles.AspectGetter = FileSystemAspectGetter;
 
 
-			treeViewFiles.AddObjects(DriveInfo.GetDrives().Select(d=>d.RootDirectory));
+			treeViewFiles.AddObjects (DriveInfo.GetDrives ().Select (d => d.RootDirectory));
 		}
 		}
 
 
 		private void ShowLines ()
 		private void ShowLines ()
@@ -138,78 +138,81 @@ namespace UICatalog.Scenarios {
 			miShowLines.Checked = !miShowLines.Checked;
 			miShowLines.Checked = !miShowLines.Checked;
 
 
 			treeViewFiles.Style.ShowBranchLines = miShowLines.Checked;
 			treeViewFiles.Style.ShowBranchLines = miShowLines.Checked;
-			treeViewFiles.SetNeedsDisplay();
+			treeViewFiles.SetNeedsDisplay ();
 		}
 		}
-		
-		private void SetExpandableSymbols(Rune? expand, Rune? collapse)
+
+		private void SetExpandableSymbols (Rune? expand, Rune? collapse)
 		{
 		{
 			miPlusMinus.Checked = expand == '+';
 			miPlusMinus.Checked = expand == '+';
 			miArrowSymbols.Checked = expand == '>';
 			miArrowSymbols.Checked = expand == '>';
 			miNoSymbols.Checked = expand == null;
 			miNoSymbols.Checked = expand == null;
 			miUnicodeSymbols.Checked = expand == 'ஹ';
 			miUnicodeSymbols.Checked = expand == 'ஹ';
-						
+
 			treeViewFiles.Style.ExpandableSymbol = expand;
 			treeViewFiles.Style.ExpandableSymbol = expand;
 			treeViewFiles.Style.CollapseableSymbol = collapse;
 			treeViewFiles.Style.CollapseableSymbol = collapse;
-			treeViewFiles.SetNeedsDisplay();
+			treeViewFiles.SetNeedsDisplay ();
 		}
 		}
-		private void ShowColoredExpandableSymbols()
+		private void ShowColoredExpandableSymbols ()
 		{
 		{
 			miColoredSymbols.Checked = !miColoredSymbols.Checked;
 			miColoredSymbols.Checked = !miColoredSymbols.Checked;
 
 
-			treeViewFiles.Style.ColorExpandSymbol =  miColoredSymbols.Checked;
-			treeViewFiles.SetNeedsDisplay();
+			treeViewFiles.Style.ColorExpandSymbol = miColoredSymbols.Checked;
+			treeViewFiles.SetNeedsDisplay ();
 		}
 		}
-		private void InvertExpandableSymbols(){
+		private void InvertExpandableSymbols ()
+		{
 			miInvertSymbols.Checked = !miInvertSymbols.Checked;
 			miInvertSymbols.Checked = !miInvertSymbols.Checked;
 
 
-			treeViewFiles.Style.InvertExpandSymbolColors =  miInvertSymbols.Checked;
-			treeViewFiles.SetNeedsDisplay();
+			treeViewFiles.Style.InvertExpandSymbolColors = miInvertSymbols.Checked;
+			treeViewFiles.SetNeedsDisplay ();
 		}
 		}
 
 
-		private void SetFullName()
+		private void SetFullName ()
 		{
 		{
 			miFullPaths.Checked = !miFullPaths.Checked;
 			miFullPaths.Checked = !miFullPaths.Checked;
 
 
-			if(miFullPaths.Checked)
-				treeViewFiles.AspectGetter = (f)=>f.FullName;
-			else
-				treeViewFiles.AspectGetter = (f)=>f.Name;
+			if (miFullPaths.Checked) {
+				treeViewFiles.AspectGetter = (f) => f.FullName;
+			} else {
+				treeViewFiles.AspectGetter = (f) => f.Name;
+			}
 		}
 		}
 
 
-		private void SetLeaveLastRow()
+		private void SetLeaveLastRow ()
 		{
 		{
 			miLeaveLastRow.Checked = !miLeaveLastRow.Checked;
 			miLeaveLastRow.Checked = !miLeaveLastRow.Checked;
 			treeViewFiles.Style.LeaveLastRow = miLeaveLastRow.Checked;
 			treeViewFiles.Style.LeaveLastRow = miLeaveLastRow.Checked;
 		}
 		}
 
 
 
 
-		private IEnumerable<FileSystemInfo> GetChildren(FileSystemInfo model)
+		private IEnumerable<FileSystemInfo> GetChildren (FileSystemInfo model)
 		{
 		{
 			// If it is a directory it's children are all contained files and dirs
 			// If it is a directory it's children are all contained files and dirs
-			if(model is DirectoryInfo d) {
+			if (model is DirectoryInfo d) {
 				try {
 				try {
-					return d.GetFileSystemInfos()
+					return d.GetFileSystemInfos ()
 						//show directories first
 						//show directories first
-						.OrderBy(a=>a is DirectoryInfo ? 0:1)
-						.ThenBy(b=>b.Name);
-				}
-				catch(SystemException) {
+						.OrderBy (a => a is DirectoryInfo ? 0 : 1)
+						.ThenBy (b => b.Name);
+				} catch (SystemException) {
 
 
 					// Access violation or other error getting the file list for directory
 					// Access violation or other error getting the file list for directory
-					return Enumerable.Empty<FileSystemInfo>();
+					return Enumerable.Empty<FileSystemInfo> ();
 				}
 				}
 			}
 			}
 
 
-		    return Enumerable.Empty<FileSystemInfo>();;
+			return Enumerable.Empty<FileSystemInfo> (); ;
 		}
 		}
-		private string FileSystemAspectGetter(FileSystemInfo model)
+		private string FileSystemAspectGetter (FileSystemInfo model)
 		{
 		{
-			if(model is DirectoryInfo d)
+			if (model is DirectoryInfo d) {
 				return d.Name;
 				return d.Name;
-			if(model is FileInfo f)
+			}
+			if (model is FileInfo f) {
 				return f.Name;
 				return f.Name;
+			}
 
 
-			return model.ToString();
+			return model.ToString ();
 		}
 		}
 
 
 		private void Quit ()
 		private void Quit ()

+ 279 - 285
UnitTests/TreeViewTests.cs

@@ -7,196 +7,193 @@ using Terminal.Gui;
 using Xunit;
 using Xunit;
 
 
 namespace UnitTests {
 namespace UnitTests {
-	public class TreeViewTests 
-	{
+	public class TreeViewTests {
 		#region Test Setup Methods
 		#region Test Setup Methods
-		class Factory
-		{
-			public Car[] Cars {get;set;}
+		class Factory {
+			public Car [] Cars { get; set; }
 			public override string ToString ()
 			public override string ToString ()
 			{
 			{
 				return "Factory";
 				return "Factory";
 			}
 			}
 		};
 		};
 		class Car {
 		class Car {
-			public string Name{get;set;}
+			public string Name { get; set; }
 			public override string ToString ()
 			public override string ToString ()
 			{
 			{
 				return Name;
 				return Name;
 			}
 			}
 		};
 		};
-		
-		private TreeView<object> CreateTree()
+
+		private TreeView<object> CreateTree ()
 		{
 		{
-			return CreateTree(out _, out _, out _);
+			return CreateTree (out _, out _, out _);
 		}
 		}
 
 
-		private TreeView<object> CreateTree(out Factory factory1, out Car car1, out Car car2)
+		private TreeView<object> CreateTree (out Factory factory1, out Car car1, out Car car2)
 		{
 		{
-			car1 = new Car();
-			car2 = new Car();
+			car1 = new Car ();
+			car2 = new Car ();
 
 
-			factory1 = new Factory()
-			{
-				Cars = new []{car1 ,car2}
+			factory1 = new Factory () {
+				Cars = new [] { car1, car2 }
 			};
 			};
-			
-			var tree = new TreeView<object>(new DelegateTreeBuilder<object>((s)=> s is Factory f ? f.Cars: null));
-			tree.AddObject(factory1);
+
+			var tree = new TreeView<object> (new DelegateTreeBuilder<object> ((s) => s is Factory f ? f.Cars : null));
+			tree.AddObject (factory1);
 
 
 			return tree;
 			return tree;
 		}
 		}
 		#endregion
 		#endregion
-		
+
 		/// <summary>
 		/// <summary>
 		/// Tests that <see cref="TreeView.Expand(object)"/> and <see cref="TreeView.IsExpanded(object)"/> are consistent
 		/// Tests that <see cref="TreeView.Expand(object)"/> and <see cref="TreeView.IsExpanded(object)"/> are consistent
 		/// </summary>
 		/// </summary>
 		[Fact]
 		[Fact]
-		public void IsExpanded_TrueAfterExpand()
+		public void IsExpanded_TrueAfterExpand ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out _, out _);
-			Assert.False(tree.IsExpanded(f));
+			var tree = CreateTree (out Factory f, out _, out _);
+			Assert.False (tree.IsExpanded (f));
 
 
-			tree.Expand(f);
-			Assert.True(tree.IsExpanded(f));
+			tree.Expand (f);
+			Assert.True (tree.IsExpanded (f));
 
 
-			tree.Collapse(f);
-			Assert.False(tree.IsExpanded(f));
+			tree.Collapse (f);
+			Assert.False (tree.IsExpanded (f));
 		}
 		}
 
 
 		[Fact]
 		[Fact]
-		public void EmptyTreeView_ContentSizes()
+		public void EmptyTreeView_ContentSizes ()
 		{
 		{
-			var emptyTree = new TreeView();
-			Assert.Equal(0,emptyTree.ContentHeight);
-			Assert.Equal(0,emptyTree.GetContentWidth(true));
-			Assert.Equal(0,emptyTree.GetContentWidth(false));
+			var emptyTree = new TreeView ();
+			Assert.Equal (0, emptyTree.ContentHeight);
+			Assert.Equal (0, emptyTree.GetContentWidth (true));
+			Assert.Equal (0, emptyTree.GetContentWidth (false));
 		}
 		}
 		[Fact]
 		[Fact]
-		public void EmptyTreeViewGeneric_ContentSizes()
+		public void EmptyTreeViewGeneric_ContentSizes ()
 		{
 		{
-			var emptyTree = new TreeView<string>();
-			Assert.Equal(0,emptyTree.ContentHeight);
-			Assert.Equal(0,emptyTree.GetContentWidth(true));
-			Assert.Equal(0,emptyTree.GetContentWidth(false));
+			var emptyTree = new TreeView<string> ();
+			Assert.Equal (0, emptyTree.ContentHeight);
+			Assert.Equal (0, emptyTree.GetContentWidth (true));
+			Assert.Equal (0, emptyTree.GetContentWidth (false));
 		}
 		}
-		
+
 		/// <summary>
 		/// <summary>
 		/// Tests that <see cref="TreeView.Expand(object)"/> results in a correct content height
 		/// Tests that <see cref="TreeView.Expand(object)"/> results in a correct content height
 		/// </summary>
 		/// </summary>
 		[Fact]
 		[Fact]
-		public void ContentHeight_BiggerAfterExpand()
+		public void ContentHeight_BiggerAfterExpand ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out _, out _);
-			Assert.Equal(1,tree.ContentHeight);
+			var tree = CreateTree (out Factory f, out _, out _);
+			Assert.Equal (1, tree.ContentHeight);
 
 
-			tree.Expand(f);
-			Assert.Equal(3,tree.ContentHeight);
+			tree.Expand (f);
+			Assert.Equal (3, tree.ContentHeight);
 
 
-			tree.Collapse(f);
-			Assert.Equal(1,tree.ContentHeight);
+			tree.Collapse (f);
+			Assert.Equal (1, tree.ContentHeight);
 		}
 		}
 
 
 		[Fact]
 		[Fact]
-		public void ContentWidth_BiggerAfterExpand()
+		public void ContentWidth_BiggerAfterExpand ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out Car car1, out _);
-			tree.Bounds = new Rect(0,0,10,10);
-			
-			InitFakeDriver();
+			var tree = CreateTree (out Factory f, out Car car1, out _);
+			tree.Bounds = new Rect (0, 0, 10, 10);
+
+			InitFakeDriver ();
 
 
 			//-+Factory
 			//-+Factory
-			Assert.Equal(9,tree.GetContentWidth(true));
+			Assert.Equal (9, tree.GetContentWidth (true));
 
 
 			car1.Name = "123456789";
 			car1.Name = "123456789";
 
 
-			tree.Expand(f);
+			tree.Expand (f);
 
 
 			//..├-123456789
 			//..├-123456789
-			Assert.Equal(13,tree.GetContentWidth(true));
+			Assert.Equal (13, tree.GetContentWidth (true));
 
 
-			tree.Collapse(f);
+			tree.Collapse (f);
 			//-+Factory
 			//-+Factory
-			Assert.Equal(9,tree.GetContentWidth(true));
+			Assert.Equal (9, tree.GetContentWidth (true));
 		}
 		}
-		
+
 		[Fact]
 		[Fact]
-		public void ContentWidth_VisibleVsAll()
+		public void ContentWidth_VisibleVsAll ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out Car car1, out Car car2);
+			var tree = CreateTree (out Factory f, out Car car1, out Car car2);
 			// control only allows 1 row to be viewed at once
 			// control only allows 1 row to be viewed at once
-			tree.Bounds = new Rect(0,0,20,1);
-			
-			InitFakeDriver();
+			tree.Bounds = new Rect (0, 0, 20, 1);
+
+			InitFakeDriver ();
 
 
 			//-+Factory
 			//-+Factory
-			Assert.Equal(9,tree.GetContentWidth(true));
-			Assert.Equal(9,tree.GetContentWidth(false));
+			Assert.Equal (9, tree.GetContentWidth (true));
+			Assert.Equal (9, tree.GetContentWidth (false));
 
 
 			car1.Name = "123456789";
 			car1.Name = "123456789";
 			car2.Name = "12345678";
 			car2.Name = "12345678";
 
 
-			tree.Expand(f);
-			
+			tree.Expand (f);
+
 			// Although expanded the bigger (longer) child node is not in the rendered area of the control
 			// Although expanded the bigger (longer) child node is not in the rendered area of the control
-			Assert.Equal(9,tree.GetContentWidth(true));
-			Assert.Equal(13,tree.GetContentWidth(false)); // If you ask for the global max width it includes the longer child
+			Assert.Equal (9, tree.GetContentWidth (true));
+			Assert.Equal (13, tree.GetContentWidth (false)); // If you ask for the global max width it includes the longer child
 
 
 			// Now that we have scrolled down 1 row we should see the big child
 			// Now that we have scrolled down 1 row we should see the big child
 			tree.ScrollOffsetVertical = 1;
 			tree.ScrollOffsetVertical = 1;
-			Assert.Equal(13,tree.GetContentWidth(true));
-			Assert.Equal(13,tree.GetContentWidth(false));
-			
+			Assert.Equal (13, tree.GetContentWidth (true));
+			Assert.Equal (13, tree.GetContentWidth (false));
+
 			// Scroll down so only car2 is visible
 			// Scroll down so only car2 is visible
 			tree.ScrollOffsetVertical = 2;
 			tree.ScrollOffsetVertical = 2;
-			Assert.Equal(12,tree.GetContentWidth(true));
-			Assert.Equal(13,tree.GetContentWidth(false));
-			
+			Assert.Equal (12, tree.GetContentWidth (true));
+			Assert.Equal (13, tree.GetContentWidth (false));
+
 			// Scroll way down (off bottom of control even)
 			// Scroll way down (off bottom of control even)
 			tree.ScrollOffsetVertical = 5;
 			tree.ScrollOffsetVertical = 5;
-			Assert.Equal(0,tree.GetContentWidth(true));
-			Assert.Equal(13,tree.GetContentWidth(false));
+			Assert.Equal (0, tree.GetContentWidth (true));
+			Assert.Equal (13, tree.GetContentWidth (false));
 		}
 		}
 		/// <summary>
 		/// <summary>
 		/// Tests that <see cref="TreeView.IsExpanded(object)"/> and <see cref="TreeView.Expand(object)"/> behaves correctly when an object cannot be expanded (because it has no children)
 		/// Tests that <see cref="TreeView.IsExpanded(object)"/> and <see cref="TreeView.Expand(object)"/> behaves correctly when an object cannot be expanded (because it has no children)
 		/// </summary>
 		/// </summary>
 		[Fact]
 		[Fact]
-		public void IsExpanded_FalseIfCannotExpand()
+		public void IsExpanded_FalseIfCannotExpand ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out Car c, out _);
-			
+			var tree = CreateTree (out Factory f, out Car c, out _);
+
 			// expose the car by expanding the factory
 			// expose the car by expanding the factory
-			tree.Expand(f);
+			tree.Expand (f);
 
 
 			// car is not expanded
 			// car is not expanded
-			Assert.False(tree.IsExpanded(c));
+			Assert.False (tree.IsExpanded (c));
 
 
 			//try to expand the car (should have no effect because cars have no children)
 			//try to expand the car (should have no effect because cars have no children)
-			tree.Expand(c);
-			
-			Assert.False(tree.IsExpanded(c));
+			tree.Expand (c);
+
+			Assert.False (tree.IsExpanded (c));
 
 
 			// should also be ignored
 			// should also be ignored
-			tree.Collapse(c);
+			tree.Collapse (c);
 
 
-			Assert.False(tree.IsExpanded(c));
+			Assert.False (tree.IsExpanded (c));
 		}
 		}
 
 
 		/// <summary>
 		/// <summary>
 		/// Tests illegal ranges for <see cref="TreeView.ScrollOffset"/>
 		/// Tests illegal ranges for <see cref="TreeView.ScrollOffset"/>
 		/// </summary>
 		/// </summary>
 		[Fact]
 		[Fact]
-		public void ScrollOffset_CannotBeNegative()
+		public void ScrollOffset_CannotBeNegative ()
 		{
 		{
-			var tree = CreateTree();
+			var tree = CreateTree ();
 
 
-			Assert.Equal(0,tree.ScrollOffsetVertical);
+			Assert.Equal (0, tree.ScrollOffsetVertical);
 
 
 			tree.ScrollOffsetVertical = -100;
 			tree.ScrollOffsetVertical = -100;
-			Assert.Equal(0,tree.ScrollOffsetVertical);
-			
+			Assert.Equal (0, tree.ScrollOffsetVertical);
+
 			tree.ScrollOffsetVertical = 10;
 			tree.ScrollOffsetVertical = 10;
-			Assert.Equal(10,tree.ScrollOffsetVertical);
+			Assert.Equal (10, tree.ScrollOffsetVertical);
 		}
 		}
 
 
 
 
@@ -204,68 +201,68 @@ namespace UnitTests {
 		/// Tests <see cref="TreeView.GetScrollOffsetOf(object)"/> for objects that are as yet undiscovered by the tree
 		/// Tests <see cref="TreeView.GetScrollOffsetOf(object)"/> for objects that are as yet undiscovered by the tree
 		/// </summary>
 		/// </summary>
 		[Fact]
 		[Fact]
-		public void GetScrollOffsetOf_MinusOneForUnRevealed()
+		public void GetScrollOffsetOf_MinusOneForUnRevealed ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out Car c1, out Car c2);
-			
+			var tree = CreateTree (out Factory f, out Car c1, out Car c2);
+
 			// to start with the tree is collapsed and only knows about the root object
 			// to start with the tree is collapsed and only knows about the root object
-			Assert.Equal(0,tree.GetScrollOffsetOf(f));
-			Assert.Equal(-1,tree.GetScrollOffsetOf(c1));
-			Assert.Equal(-1,tree.GetScrollOffsetOf(c2));
+			Assert.Equal (0, tree.GetScrollOffsetOf (f));
+			Assert.Equal (-1, tree.GetScrollOffsetOf (c1));
+			Assert.Equal (-1, tree.GetScrollOffsetOf (c2));
 
 
 			// reveal it by expanding the root object
 			// reveal it by expanding the root object
-			tree.Expand(f);
-			
+			tree.Expand (f);
+
 			// tree now knows about children
 			// tree now knows about children
-			Assert.Equal(0,tree.GetScrollOffsetOf(f));
-			Assert.Equal(1,tree.GetScrollOffsetOf(c1));
-			Assert.Equal(2,tree.GetScrollOffsetOf(c2));
+			Assert.Equal (0, tree.GetScrollOffsetOf (f));
+			Assert.Equal (1, tree.GetScrollOffsetOf (c1));
+			Assert.Equal (2, tree.GetScrollOffsetOf (c2));
 
 
 			// after collapsing the root node again
 			// after collapsing the root node again
-			tree.Collapse(f);
-			
+			tree.Collapse (f);
+
 			// tree no longer knows about the locations of these objects
 			// tree no longer knows about the locations of these objects
-			Assert.Equal(0,tree.GetScrollOffsetOf(f));
-			Assert.Equal(-1,tree.GetScrollOffsetOf(c1));
-			Assert.Equal(-1,tree.GetScrollOffsetOf(c2));
+			Assert.Equal (0, tree.GetScrollOffsetOf (f));
+			Assert.Equal (-1, tree.GetScrollOffsetOf (c1));
+			Assert.Equal (-1, tree.GetScrollOffsetOf (c2));
 		}
 		}
 
 
 		/// <summary>
 		/// <summary>
 		/// Simulates behind the scenes changes to an object (which children it has) and how to sync that into the tree using <see cref="TreeView.RefreshObject(object, bool)"/>
 		/// Simulates behind the scenes changes to an object (which children it has) and how to sync that into the tree using <see cref="TreeView.RefreshObject(object, bool)"/>
 		/// </summary>
 		/// </summary>
 		[Fact]
 		[Fact]
-		public void RefreshObject_ChildRemoved()
+		public void RefreshObject_ChildRemoved ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out Car c1, out Car c2);
-			
+			var tree = CreateTree (out Factory f, out Car c1, out Car c2);
+
 			//reveal it by expanding the root object
 			//reveal it by expanding the root object
-			tree.Expand(f);
-			
-			Assert.Equal(0,tree.GetScrollOffsetOf(f));
-			Assert.Equal(1,tree.GetScrollOffsetOf(c1));
-			Assert.Equal(2,tree.GetScrollOffsetOf(c2));
-			
+			tree.Expand (f);
+
+			Assert.Equal (0, tree.GetScrollOffsetOf (f));
+			Assert.Equal (1, tree.GetScrollOffsetOf (c1));
+			Assert.Equal (2, tree.GetScrollOffsetOf (c2));
+
 			// Factory now no longer makes Car c1 (only c2)
 			// Factory now no longer makes Car c1 (only c2)
-			f.Cars = new Car[]{c2};
+			f.Cars = new Car [] { c2 };
 
 
 			// Tree does not know this yet
 			// Tree does not know this yet
-			Assert.Equal(0,tree.GetScrollOffsetOf(f));
-			Assert.Equal(1,tree.GetScrollOffsetOf(c1));
-			Assert.Equal(2,tree.GetScrollOffsetOf(c2));
+			Assert.Equal (0, tree.GetScrollOffsetOf (f));
+			Assert.Equal (1, tree.GetScrollOffsetOf (c1));
+			Assert.Equal (2, tree.GetScrollOffsetOf (c2));
 
 
 			// If the user has selected the node c1
 			// If the user has selected the node c1
 			tree.SelectedObject = c1;
 			tree.SelectedObject = c1;
 
 
 			// When we refresh the tree
 			// When we refresh the tree
-			tree.RefreshObject(f);
+			tree.RefreshObject (f);
 
 
 			// Now tree knows that factory has only one child node c2
 			// Now tree knows that factory has only one child node c2
-			Assert.Equal(0,tree.GetScrollOffsetOf(f));
-			Assert.Equal(-1,tree.GetScrollOffsetOf(c1));
-			Assert.Equal(1,tree.GetScrollOffsetOf(c2));
+			Assert.Equal (0, tree.GetScrollOffsetOf (f));
+			Assert.Equal (-1, tree.GetScrollOffsetOf (c1));
+			Assert.Equal (1, tree.GetScrollOffsetOf (c2));
 
 
 			// The old selection was c1 which is now gone so selection should default to the parent of that branch (the factory)
 			// The old selection was c1 which is now gone so selection should default to the parent of that branch (the factory)
-			Assert.Equal(f,tree.SelectedObject);
+			Assert.Equal (f, tree.SelectedObject);
 		}
 		}
 
 
 		/// <summary>
 		/// <summary>
@@ -274,26 +271,26 @@ namespace UnitTests {
 		/// is expanded to expose the child (Car)
 		/// is expanded to expose the child (Car)
 		/// </summary>
 		/// </summary>
 		[Fact]
 		[Fact]
-		public void GetParent_ReturnsParentOnlyWhenExpanded()
+		public void GetParent_ReturnsParentOnlyWhenExpanded ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out Car c1, out Car c2);
-			
-			Assert.Null(tree.GetParent(f));
-			Assert.Null(tree.GetParent(c1));
-			Assert.Null(tree.GetParent(c2));
+			var tree = CreateTree (out Factory f, out Car c1, out Car c2);
+
+			Assert.Null (tree.GetParent (f));
+			Assert.Null (tree.GetParent (c1));
+			Assert.Null (tree.GetParent (c2));
 
 
 			// now when we expand the factory we discover the cars
 			// now when we expand the factory we discover the cars
-			tree.Expand(f);
-			
-			Assert.Null(tree.GetParent(f));
-			Assert.Equal(f,tree.GetParent(c1));
-			Assert.Equal(f,tree.GetParent(c2));
+			tree.Expand (f);
+
+			Assert.Null (tree.GetParent (f));
+			Assert.Equal (f, tree.GetParent (c1));
+			Assert.Equal (f, tree.GetParent (c2));
 
 
-			tree.Collapse(f);
+			tree.Collapse (f);
 
 
-			Assert.Null(tree.GetParent(f));
-			Assert.Null(tree.GetParent(c1));
-			Assert.Null(tree.GetParent(c2));
+			Assert.Null (tree.GetParent (f));
+			Assert.Null (tree.GetParent (c1));
+			Assert.Null (tree.GetParent (c2));
 		}
 		}
 
 
 		/// <summary>
 		/// <summary>
@@ -302,79 +299,79 @@ namespace UnitTests {
 		/// previously didn't have any children
 		/// previously didn't have any children
 		/// </summary>
 		/// </summary>
 		[Fact]
 		[Fact]
-		public void RefreshObject_AfterChangingChildrenGetterDuringRuntime()
+		public void RefreshObject_AfterChangingChildrenGetterDuringRuntime ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out Car c1, out Car c2);
-			
+			var tree = CreateTree (out Factory f, out Car c1, out Car c2);
+
 			string wheel = "Shiny Wheel";
 			string wheel = "Shiny Wheel";
 
 
 			// Expand the Factory
 			// Expand the Factory
-			tree.Expand(f);
-			
+			tree.Expand (f);
+
 			// c1 cannot have children
 			// c1 cannot have children
-			Assert.Equal(f,tree.GetParent(c1));
+			Assert.Equal (f, tree.GetParent (c1));
 
 
 			// expanding it does nothing
 			// expanding it does nothing
-			tree.Expand(c1);
-			Assert.False(tree.IsExpanded(c1));
+			tree.Expand (c1);
+			Assert.False (tree.IsExpanded (c1));
 
 
 			// change the children getter so that now cars can have wheels
 			// change the children getter so that now cars can have wheels
-			tree.TreeBuilder = new DelegateTreeBuilder<object>((o)=>
-				// factories have cars
-				o is Factory ? new object[]{c1,c2} 
-				// cars have wheels
-				: new object[]{wheel });
-			
+			tree.TreeBuilder = new DelegateTreeBuilder<object> ((o) =>
+				 // factories have cars
+				 o is Factory ? new object [] { c1, c2 }
+				 // cars have wheels
+				 : new object [] { wheel });
+
 			// still cannot expand
 			// still cannot expand
-			tree.Expand(c1);
-			Assert.False(tree.IsExpanded(c1));
+			tree.Expand (c1);
+			Assert.False (tree.IsExpanded (c1));
 
 
-			tree.RefreshObject(c1);
-			tree.Expand(c1);
-			Assert.True(tree.IsExpanded(c1));
-			Assert.Equal(wheel,tree.GetChildren(c1).FirstOrDefault());
+			tree.RefreshObject (c1);
+			tree.Expand (c1);
+			Assert.True (tree.IsExpanded (c1));
+			Assert.Equal (wheel, tree.GetChildren (c1).FirstOrDefault ());
 		}
 		}
 		/// <summary>
 		/// <summary>
 		/// Same as <see cref="RefreshObject_AfterChangingChildrenGetterDuringRuntime"/> but
 		/// Same as <see cref="RefreshObject_AfterChangingChildrenGetterDuringRuntime"/> but
 		/// uses <see cref="TreeView.RebuildTree()"/> instead of <see cref="TreeView.RefreshObject(object, bool)"/>
 		/// uses <see cref="TreeView.RebuildTree()"/> instead of <see cref="TreeView.RefreshObject(object, bool)"/>
 		/// </summary>
 		/// </summary>
 		[Fact]
 		[Fact]
-		public void RebuildTree_AfterChangingChildrenGetterDuringRuntime()
+		public void RebuildTree_AfterChangingChildrenGetterDuringRuntime ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out Car c1, out Car c2);
-			
+			var tree = CreateTree (out Factory f, out Car c1, out Car c2);
+
 			string wheel = "Shiny Wheel";
 			string wheel = "Shiny Wheel";
 
 
 			// Expand the Factory
 			// Expand the Factory
-			tree.Expand(f);
-			
+			tree.Expand (f);
+
 			// c1 cannot have children
 			// c1 cannot have children
-			Assert.Equal(f,tree.GetParent(c1));
+			Assert.Equal (f, tree.GetParent (c1));
 
 
 			// expanding it does nothing
 			// expanding it does nothing
-			tree.Expand(c1);
-			Assert.False(tree.IsExpanded(c1));
+			tree.Expand (c1);
+			Assert.False (tree.IsExpanded (c1));
 
 
 			// change the children getter so that now cars can have wheels
 			// change the children getter so that now cars can have wheels
-			tree.TreeBuilder = new DelegateTreeBuilder<object>((o)=>
-				// factories have cars
-				o is Factory ? new object[]{c1,c2} 
-				// cars have wheels
-				: new object[]{wheel });
-			
+			tree.TreeBuilder = new DelegateTreeBuilder<object> ((o) =>
+				 // factories have cars
+				 o is Factory ? new object [] { c1, c2 }
+				 // cars have wheels
+				 : new object [] { wheel });
+
 			// still cannot expand
 			// still cannot expand
-			tree.Expand(c1);
-			Assert.False(tree.IsExpanded(c1));
+			tree.Expand (c1);
+			Assert.False (tree.IsExpanded (c1));
 
 
 			// Rebuild the tree
 			// Rebuild the tree
-			tree.RebuildTree();
-			
+			tree.RebuildTree ();
+
 			// Rebuild should not have collapsed any branches or done anything wierd
 			// Rebuild should not have collapsed any branches or done anything wierd
-			Assert.True(tree.IsExpanded(f));
+			Assert.True (tree.IsExpanded (f));
 
 
-			tree.Expand(c1);
-			Assert.True(tree.IsExpanded(c1));
-			Assert.Equal(wheel,tree.GetChildren(c1).FirstOrDefault());
+			tree.Expand (c1);
+			Assert.True (tree.IsExpanded (c1));
+			Assert.Equal (wheel, tree.GetChildren (c1).FirstOrDefault ());
 		}
 		}
 		/// <summary>
 		/// <summary>
 		/// Tests that <see cref="TreeView.GetChildren(object)"/> returns the child objects for
 		/// Tests that <see cref="TreeView.GetChildren(object)"/> returns the child objects for
@@ -382,167 +379,165 @@ namespace UnitTests {
 		/// is expanded to expose the child (Car)
 		/// is expanded to expose the child (Car)
 		/// </summary>
 		/// </summary>
 		[Fact]
 		[Fact]
-		public void GetChildren_ReturnsChildrenOnlyWhenExpanded()
+		public void GetChildren_ReturnsChildrenOnlyWhenExpanded ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out Car c1, out Car c2);
-			
-			Assert.Empty(tree.GetChildren(f));
-			Assert.Empty(tree.GetChildren(c1));
-			Assert.Empty(tree.GetChildren(c2));
+			var tree = CreateTree (out Factory f, out Car c1, out Car c2);
+
+			Assert.Empty (tree.GetChildren (f));
+			Assert.Empty (tree.GetChildren (c1));
+			Assert.Empty (tree.GetChildren (c2));
 
 
 			// now when we expand the factory we discover the cars
 			// now when we expand the factory we discover the cars
-			tree.Expand(f);
-			
-			Assert.Contains(c1,tree.GetChildren(f));
-			Assert.Contains(c2,tree.GetChildren(f));
-			Assert.Empty(tree.GetChildren(c1));
-			Assert.Empty(tree.GetChildren(c2));
-
-			tree.Collapse(f);
-
-			Assert.Empty(tree.GetChildren(f));
-			Assert.Empty(tree.GetChildren(c1));
-			Assert.Empty(tree.GetChildren(c2));
+			tree.Expand (f);
+
+			Assert.Contains (c1, tree.GetChildren (f));
+			Assert.Contains (c2, tree.GetChildren (f));
+			Assert.Empty (tree.GetChildren (c1));
+			Assert.Empty (tree.GetChildren (c2));
+
+			tree.Collapse (f);
+
+			Assert.Empty (tree.GetChildren (f));
+			Assert.Empty (tree.GetChildren (c1));
+			Assert.Empty (tree.GetChildren (c2));
 		}
 		}
 
 
 		[Fact]
 		[Fact]
-		public void TreeNode_WorksWithoutDelegate()
+		public void TreeNode_WorksWithoutDelegate ()
 		{
 		{
-			var tree = new TreeView();
+			var tree = new TreeView ();
 
 
-			var root = new TreeNode("Root");
-			root.Children.Add(new TreeNode("Leaf1"));
-			root.Children.Add(new TreeNode("Leaf2"));
+			var root = new TreeNode ("Root");
+			root.Children.Add (new TreeNode ("Leaf1"));
+			root.Children.Add (new TreeNode ("Leaf2"));
 
 
-			tree.AddObject(root);
+			tree.AddObject (root);
 
 
-			tree.Expand(root);
-			Assert.Equal(2,tree.GetChildren(root).Count());
+			tree.Expand (root);
+			Assert.Equal (2, tree.GetChildren (root).Count ());
 		}
 		}
 
 
 
 
 		[Fact]
 		[Fact]
-		public void MultiSelect_GetAllSelectedObjects()
+		public void MultiSelect_GetAllSelectedObjects ()
 		{
 		{
-			var tree = new TreeView();
+			var tree = new TreeView ();
 
 
 			TreeNode l1;
 			TreeNode l1;
 			TreeNode l2;
 			TreeNode l2;
 			TreeNode l3;
 			TreeNode l3;
 			TreeNode l4;
 			TreeNode l4;
 
 
-			var root = new TreeNode("Root");
-			root.Children.Add(l1 = new TreeNode("Leaf1"));
-			root.Children.Add(l2 = new TreeNode("Leaf2"));
-			root.Children.Add(l3 = new TreeNode("Leaf3"));
-			root.Children.Add(l4 = new TreeNode("Leaf4"));
+			var root = new TreeNode ("Root");
+			root.Children.Add (l1 = new TreeNode ("Leaf1"));
+			root.Children.Add (l2 = new TreeNode ("Leaf2"));
+			root.Children.Add (l3 = new TreeNode ("Leaf3"));
+			root.Children.Add (l4 = new TreeNode ("Leaf4"));
 
 
-			tree.AddObject(root);
+			tree.AddObject (root);
 			tree.MultiSelect = true;
 			tree.MultiSelect = true;
 
 
-			tree.Expand(root);
-			Assert.Empty(tree.GetAllSelectedObjects());
+			tree.Expand (root);
+			Assert.Empty (tree.GetAllSelectedObjects ());
 
 
 			tree.SelectedObject = root;
 			tree.SelectedObject = root;
 
 
-			Assert.Single(tree.GetAllSelectedObjects(),root);
+			Assert.Single (tree.GetAllSelectedObjects (), root);
 
 
 			// move selection down 1
 			// move selection down 1
-			tree.AdjustSelection(1,false);
+			tree.AdjustSelection (1, false);
 
 
-			Assert.Single(tree.GetAllSelectedObjects(),l1);
+			Assert.Single (tree.GetAllSelectedObjects (), l1);
 
 
 			// expand selection down 2 (e.g. shift down twice)
 			// expand selection down 2 (e.g. shift down twice)
-			tree.AdjustSelection(1,true);
-			tree.AdjustSelection(1,true);
+			tree.AdjustSelection (1, true);
+			tree.AdjustSelection (1, true);
 
 
-			Assert.Equal(3,tree.GetAllSelectedObjects().Count());
-			Assert.Contains(l1,tree.GetAllSelectedObjects());
-			Assert.Contains(l2,tree.GetAllSelectedObjects());
-			Assert.Contains(l3,tree.GetAllSelectedObjects());
+			Assert.Equal (3, tree.GetAllSelectedObjects ().Count ());
+			Assert.Contains (l1, tree.GetAllSelectedObjects ());
+			Assert.Contains (l2, tree.GetAllSelectedObjects ());
+			Assert.Contains (l3, tree.GetAllSelectedObjects ());
+
+			tree.Collapse (root);
 
 
-			tree.Collapse(root);
-			
 			// No selected objects since the root was collapsed
 			// No selected objects since the root was collapsed
-			Assert.Empty(tree.GetAllSelectedObjects());
+			Assert.Empty (tree.GetAllSelectedObjects ());
 		}
 		}
 
 
 		[Fact]
 		[Fact]
-		public void ObjectActivated_Called()
+		public void ObjectActivated_Called ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out Car car1, out _);
+			var tree = CreateTree (out Factory f, out Car car1, out _);
 
 
-			InitFakeDriver();
+			InitFakeDriver ();
 
 
 			object activated = null;
 			object activated = null;
 			bool called = false;
 			bool called = false;
 
 
 			// register for the event
 			// register for the event
-			tree.ObjectActivated += (s)=>
-			{
+			tree.ObjectActivated += (s) => {
 				activated = s.ActivatedObject;
 				activated = s.ActivatedObject;
 				called = true;
 				called = true;
 			};
 			};
 
 
-			Assert.False(called);
-			
+			Assert.False (called);
+
 			// no object is selected yet so no event should happen
 			// no object is selected yet so no event should happen
-			tree.ProcessKey(new KeyEvent(Key.Enter,new KeyModifiers()));
+			tree.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ()));
 
 
-			Assert.Null(activated);
-			Assert.False(called);
+			Assert.Null (activated);
+			Assert.False (called);
 
 
 			// down to select factory
 			// down to select factory
-			tree.ProcessKey(new KeyEvent(Key.CursorDown,new KeyModifiers()));
+			tree.ProcessKey (new KeyEvent (Key.CursorDown, new KeyModifiers ()));
 
 
-			tree.ProcessKey(new KeyEvent(Key.Enter,new KeyModifiers()));
-			
-			Assert.True(called);
-			Assert.Same(f,activated);			
+			tree.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ()));
+
+			Assert.True (called);
+			Assert.Same (f, activated);
 		}
 		}
 
 
 
 
 		[Fact]
 		[Fact]
-		public void ObjectActivated_CustomKey()
+		public void ObjectActivated_CustomKey ()
 		{
 		{
-			var tree = CreateTree(out Factory f, out Car car1, out _);
-			
-			InitFakeDriver();
+			var tree = CreateTree (out Factory f, out Car car1, out _);
+
+			InitFakeDriver ();
 
 
 			tree.ObjectActivationKey = Key.Delete;
 			tree.ObjectActivationKey = Key.Delete;
 			object activated = null;
 			object activated = null;
 			bool called = false;
 			bool called = false;
 
 
 			// register for the event
 			// register for the event
-			tree.ObjectActivated += (s)=>
-			{
+			tree.ObjectActivated += (s) => {
 				activated = s.ActivatedObject;
 				activated = s.ActivatedObject;
 				called = true;
 				called = true;
 			};
 			};
 
 
-			Assert.False(called);
-			
+			Assert.False (called);
+
 			// no object is selected yet so no event should happen
 			// no object is selected yet so no event should happen
-			tree.ProcessKey(new KeyEvent(Key.Enter,new KeyModifiers()));
+			tree.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ()));
 
 
-			Assert.Null(activated);
-			Assert.False(called);
+			Assert.Null (activated);
+			Assert.False (called);
 
 
 			// down to select factory
 			// down to select factory
-			tree.ProcessKey(new KeyEvent(Key.CursorDown,new KeyModifiers()));
+			tree.ProcessKey (new KeyEvent (Key.CursorDown, new KeyModifiers ()));
+
+			tree.ProcessKey (new KeyEvent (Key.Enter, new KeyModifiers ()));
 
 
-			tree.ProcessKey(new KeyEvent(Key.Enter,new KeyModifiers()));
-			
 			// Enter is not the activation key in this unit test
 			// Enter is not the activation key in this unit test
-			Assert.Null(activated);
-			Assert.False(called);
+			Assert.Null (activated);
+			Assert.False (called);
 
 
 			// Delete is the activation key in this test so should result in activation occurring
 			// Delete is the activation key in this test so should result in activation occurring
-			tree.ProcessKey(new KeyEvent(Key.Delete,new KeyModifiers()));
+			tree.ProcessKey (new KeyEvent (Key.Delete, new KeyModifiers ()));
+
+			Assert.True (called);
+			Assert.Same (f, activated);
 
 
-			Assert.True(called);
-			Assert.Same(f,activated);
-			
 		}
 		}
 
 
 
 
@@ -551,57 +546,56 @@ namespace UnitTests {
 		/// Simulates behind the scenes changes to an object (which children it has) and how to sync that into the tree using <see cref="TreeView.RefreshObject(object, bool)"/>
 		/// Simulates behind the scenes changes to an object (which children it has) and how to sync that into the tree using <see cref="TreeView.RefreshObject(object, bool)"/>
 		/// </summary>
 		/// </summary>
 		[Fact]
 		[Fact]
-		public void RefreshObject_EqualityTest()
+		public void RefreshObject_EqualityTest ()
 		{
 		{
-			var obj1 = new EqualityTestObject(){Name="Bob",Age=1 };
-			var obj2 = new EqualityTestObject(){Name="Bob",Age=2 };;
+			var obj1 = new EqualityTestObject () { Name = "Bob", Age = 1 };
+			var obj2 = new EqualityTestObject () { Name = "Bob", Age = 2 }; ;
 
 
 			string root = "root";
 			string root = "root";
-			
-			var tree = new TreeView<object>();
-			tree.TreeBuilder = new DelegateTreeBuilder<object>((s)=>  ReferenceEquals(s , root) ? new object[]{obj1 } : null);
-			tree.AddObject(root);
+
+			var tree = new TreeView<object> ();
+			tree.TreeBuilder = new DelegateTreeBuilder<object> ((s) => ReferenceEquals (s, root) ? new object [] { obj1 } : null);
+			tree.AddObject (root);
 
 
 			// Tree is not expanded so the root has no children yet
 			// Tree is not expanded so the root has no children yet
-			Assert.Empty(tree.GetChildren(root));
+			Assert.Empty (tree.GetChildren (root));
 
 
 
 
-			tree.Expand(root);
+			tree.Expand (root);
 
 
 			// now that the tree is expanded we should get our child returned
 			// now that the tree is expanded we should get our child returned
-			Assert.Equal(1,tree.GetChildren(root).Count(child=>ReferenceEquals(obj1,child)));
+			Assert.Equal (1, tree.GetChildren (root).Count (child => ReferenceEquals (obj1, child)));
 
 
 			// change the getter to return an Equal object (but not the same reference - obj2)
 			// change the getter to return an Equal object (but not the same reference - obj2)
-			tree.TreeBuilder = new DelegateTreeBuilder<object>((s)=>  ReferenceEquals(s , root) ? new object[]{obj2 } : null);
+			tree.TreeBuilder = new DelegateTreeBuilder<object> ((s) => ReferenceEquals (s, root) ? new object [] { obj2 } : null);
 
 
 			// tree has cached the knowledge of what children the root has so won't know about the change (we still get obj1)
 			// tree has cached the knowledge of what children the root has so won't know about the change (we still get obj1)
-			Assert.Equal(1,tree.GetChildren(root).Count(child=>ReferenceEquals(obj1,child)));
+			Assert.Equal (1, tree.GetChildren (root).Count (child => ReferenceEquals (obj1, child)));
 
 
 			// now that we refresh the root we should get the new child reference (obj2)
 			// now that we refresh the root we should get the new child reference (obj2)
-			tree.RefreshObject(root);
-			Assert.Equal(1,tree.GetChildren(root).Count(child=>ReferenceEquals(obj2,child)));
+			tree.RefreshObject (root);
+			Assert.Equal (1, tree.GetChildren (root).Count (child => ReferenceEquals (obj2, child)));
 
 
 		}
 		}
 
 
 		/// <summary>
 		/// <summary>
 		/// Test object which considers for equality only <see cref="Name"/>
 		/// Test object which considers for equality only <see cref="Name"/>
 		/// </summary>
 		/// </summary>
-		private class EqualityTestObject
-		{
-			public string Name { get;set;}
-			public int Age { get;set;}
+		private class EqualityTestObject {
+			public string Name { get; set; }
+			public int Age { get; set; }
 
 
 			public override int GetHashCode ()
 			public override int GetHashCode ()
 			{
 			{
-				return Name?.GetHashCode()??base.GetHashCode ();
+				return Name?.GetHashCode () ?? base.GetHashCode ();
 			}
 			}
 			public override bool Equals (object obj)
 			public override bool Equals (object obj)
 			{
 			{
-				return obj is EqualityTestObject eto && Equals(Name, eto.Name);
+				return obj is EqualityTestObject eto && Equals (Name, eto.Name);
 			}
 			}
 		}
 		}
 
 
-		private void InitFakeDriver()
+		private void InitFakeDriver ()
 		{
 		{
 			var driver = new FakeDriver ();
 			var driver = new FakeDriver ();
 			Application.Init (driver, new FakeMainLoop (() => FakeConsole.ReadKey (true)));
 			Application.Init (driver, new FakeMainLoop (() => FakeConsole.ReadKey (true)));

Some files were not shown because too many files changed in this diff