Exemple #1
0
        /// <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 = "";
 }