/// <summary> /// Go back to root menu /// </summary> private void GoToRoot() { _currentGroup = TestHookManager.Groups.None; RestoreButton.Content = "Restore All"; BackButton.Visibility = Visibility.Collapsed; foreach (var i in TestHookStackPanel.Children) { var item = i as ItemsControl; if (item != null) { item.ItemsSource = null; } } var itemsControl = new ItemsControl { ItemsSource = _viewModel.GroupList }; var dataTemplate = Resources["HyperLinkButtonTemplate"] as DataTemplate; itemsControl.ItemTemplate = dataTemplate; TestHookStackPanel.Children.Add(itemsControl); }
/// <summary> /// Event when a group is clicked /// </summary> /// <param name="sender">Sender object</param> /// <param name="e">RoutedEventArgs parameter</param> private void OnClickHyperLink(object sender, RoutedEventArgs e) { BackButton.Visibility = Visibility.Visible; foreach (var i in TestHookStackPanel.Children) { var itemsControl = i as ItemsControl; if (itemsControl != null) { itemsControl.ItemsSource = null; } } var hyperLink = sender as HyperlinkButton; if (hyperLink != null) { var isGroupParameter = hyperLink.Tag is TestHookManager.Groups; if (isGroupParameter) { _currentGroup = (TestHookManager.Groups)hyperLink.Tag; RestoreButton.Content = "Restore current"; var itemsControl = new ItemsControl { ItemsSource = _viewModel.GetListForGroup(_currentGroup), ItemTemplateSelector = new TestHookDataTemplateSelector(this) }; TestHookStackPanel.Children.Add(itemsControl); } } }
/// <summary> /// Restores all the test hooks within a group to their defaut value. /// If a none group is specified, then restore all test hooks in every group. /// </summary> /// <param name="group">Group to restore test hooks</param> public void RestoreToDefaults(TestHookManager.Groups group) { if (group == TestHookManager.Groups.None) { var groupList = TestHookManager.Instance.TestHookGroups.Values.ToList(); groupList.ForEach(g => { var list = g.TestHooks.Values.ToList(); list.ForEach(p => p.RestoreDefaultState()); }); } else { var list = TestHookManager.Instance.TestHookGroups[group].TestHooks.Values.ToList(); list.ForEach(p => p.RestoreDefaultState()); } }
/// <summary> /// Constructor /// </summary> /// <param name="id">Unique reference ID</param> /// <param name="displayName">Display UI name</param> public TestHookGroup(TestHookManager.Groups id, string displayName) { Id = id; DisplayName = displayName; }
/// <summary> /// Gets an observable collection of test hooks for the group. /// They will be ordered by the display order index. /// </summary> /// <param name="group">Group to get test hooks</param> /// <returns>An observable collection of test hooks</returns> public ObservableCollection <ITestHookModel> GetListForGroup(TestHookManager.Groups group) { return (new ObservableCollection <ITestHookModel>( TestHookManager.Instance.TestHookGroups[group].TestHooks.Values.ToList().OrderBy(o => o.DisplayOrderIndex))); }