private void RemoveResultNode(TestResultEntity result) { TestResultTreeNode node = result.DataElement.Annotation <TestResultTreeNode>(); if (node != null && node.TreeView != null) { System.Diagnostics.Debug.Assert(node.TreeView == treeView1); _treeNeedsRebuilding = node.Parent.Nodes.Count == 1; // Only need to refresh if by removng us, it'll mean the parent is empty node.Remove(); result.DataElement.RemoveAnnotations <TestResultTreeNode>(); } }
private void AddResultNode(TestResultEntity result) { TestResultTreeNode node = result.DataElement.Annotation <TestResultTreeNode>(); System.Diagnostics.Debug.Assert(node == null); node = new TestResultTreeNode(result); var resultTypeNode = _resultTypeNodes[result.ResultType]; result.DataElement.AddAnnotation(node); // Allow for sub-grouping if the result type wants it TreeNode bucketNode = GetBucketNode(resultTypeNode, result); bucketNode.Nodes.Add(node); _treeNeedsRebuilding = true; }
void model_SelectionUpdateEvt(Selection.State previous, Selection.State current) { if (current.sender == this) { return; } TestResultTreeNode node = null; if (current.testResult != null) { node = current.testResult.DataElement.Annotation <TestResultTreeNode>(); System.Diagnostics.Debug.Assert(node != null, "The node was selected before there was a test result. How's this possible? We have a race somewhere."); } suspend_selection_notify = true; treeView1.SelectedNode = node; if (node != null) { node.EnsureVisible(); } suspend_selection_notify = false; }