public void RefreshTestTree(IProgressMonitor progressMonitor) { using (progressMonitor.BeginTask("Refreshing test tree.", 100)) { eventAggregator.Send(this, new TestsReset()); var options = new TreeBuilderOptions { TreeViewCategory = treeViewCategory, NamespaceHierarchy = optionsController.NamespaceHierarchy }; using (var subProgressMonitor = progressMonitor.CreateSubProgressMonitor(99)) { ReadReport(report => testTreeModel.BuildTestTree(subProgressMonitor, report.TestModel, options)); } } }
public void BuildTestTree(IProgressMonitor progressMonitor, TestModelData testModelData, TreeBuilderOptions options) { if (string.IsNullOrEmpty(options.TreeViewCategory)) { throw new ArgumentException("Tree view category cannot be null or empty."); } int count = CountTestData(testModelData.RootTest); using (progressMonitor.BeginTask("Building test tree", count)) { ((TreeModel)innerTreeModel).Root.Nodes.Clear(); TestTreeNode root = null; foreach (var treeBuilder in treeBuilders) { if (!treeBuilder.CanHandle(options.TreeViewCategory)) { continue; } root = treeBuilder.BuildTree(progressMonitor, testModelData, options); break; } if (root == null) { throw new Exception(string.Format("Could not find a tree builder for {0}", options.TreeViewCategory)); } ((TreeModel)innerTreeModel).Root.Nodes.Add(root); OnStructureChanged(new TreePathEventArgs(new TreePath(root))); } }