/// <summary> /// Populate treeview based on selected element /// </summary> /// <param name="el"></param> public void SetElement(A11yElement el) { if (el == null) { throw new ArgumentNullException(nameof(el)); } this.tbElement.Text = el.Glimpse; RootNodes = new List <EventConfigNodeViewModel>(); trviewConfigEvents.ItemsSource = RootNodes; var ids = SupportedEvents.GetEventsForControl(el.ControlTypeId, el.Patterns); SuggestedNode = new EventConfigNodeViewModel(string.Format(CultureInfo.InvariantCulture, Properties.Resources.EventConfigTabControl_SetElement_Expected_Events_based_on_the_0_control_type, Axe.Windows.Core.Types.ControlType.GetInstance().GetNameById(el.ControlTypeId)), isThreeState: true) { IsExpanded = true }; if (ids.Any()) { SuggestedNode.AddChildren(ids, EventConfigNodeType.Event, true); SuggestedNode.SortChildren(); } var properties = new EventConfigNodeViewModel("Properties", isThreeState: true) { Depth = 1 }; properties.AddChildren(el.Properties.Values); if (properties.Children.Any()) { properties.SortChildren(); SuggestedNode.AddChild(properties); } if (SuggestedNode.Children.Any()) { RootNodes.Add(SuggestedNode); } CustomNode = new EventConfigNodeViewModel("My Events", isThreeState: true); CustomPropertiesNode = new EventConfigNodeViewModel("Properties", isThreeState: true) { Depth = 1 }; EditBtnNode = new EventConfigNodeViewModel("", Visibility.Visible, Properties.Resources.EventConfigTabControl_SetElement_Edit_My_Events) { Depth = 1, TextVisibility = Visibility.Collapsed }; UpdateCustomNode(); RootNodes.Add(CustomNode); trviewConfigEvents.Items.Refresh(); trviewConfigEvents.UpdateLayout(); }
public void Clear() { this.CustomNode = null; this.CustomPropertiesNode = null; this.SuggestedNode = null; this.RootNodes?.Clear(); this.trviewConfigEvents.ItemsSource = null; this.RootNodes = null; ClearCheckedCounts(ConfigurationManager.GetDefaultInstance().EventConfig.Events); ClearCheckedCounts(ConfigurationManager.GetDefaultInstance().EventConfig.Properties); this.ckbxAllEvents.IsChecked = false; ConfigurationManager.GetDefaultInstance().EventConfig.IsListeningAllEvents = false; this.tbElement.Text = ""; }