private void OnTestUnloaded(object sender, TestEventArgs e) { ClosePropertiesDialog(); if (Services.UserSettings.GetSetting("Gui.TestTree.SaveVisualState", true) && loader != null) { try { new VisualState(this).Save(VisualState.GetVisualStateFileName(loader.TestFileName)); } catch (Exception ex) { Debug.WriteLine("Unable to save visual state."); Debug.WriteLine(ex); } } Clear(); explicitlySelectedNode = null; runCommandEnabled = false; }
private void RestoreVisualState( VisualState visualState ) { this.CheckBoxes = visualState.ShowCheckBoxes; foreach (VisualTreeNode visualNode in visualState.Nodes) { TestSuiteTreeNode treeNode = this[visualNode.UniqueName]; if (treeNode != null) { if (treeNode.IsExpanded != visualNode.Expanded) treeNode.Toggle(); treeNode.Checked = visualNode.Checked; } } if (visualState.SelectedNode != null) { TestSuiteTreeNode treeNode = this[visualState.SelectedNode]; if (treeNode != null) this.SelectedNode = treeNode; } if (visualState.TopNode != null) { TestSuiteTreeNode treeNode = this[visualState.TopNode]; if (treeNode != null) TryToSetTopNode(treeNode); } if (visualState.SelectedCategories != null) { TestFilter filter = new CategoryFilter(visualState.SelectedCategories.Split(new char[] { ',' })); if (visualState.ExcludeCategories) filter = new NotFilter(filter); this.CategoryFilter = filter; } this.Select(); }
/// <summary> /// Reload the tree with a changed test hierarchy /// while maintaining as much gui state as possible. /// </summary> /// <param name="test">Test suite to be loaded</param> public void Reload( TestNode test ) { TestResult result = ((TestSuiteTreeNode)Nodes[0]).Result; VisualState visualState = new VisualState(this); Load(test); visualState.Restore(this); if (result != null && !Services.UserSettings.GetSetting("Options.TestLoader.ClearResultsOnReload", false)) RestoreResults(result); }