void AddSearchElement(VisualElement root)
        {
            m_SearchElement = AddSearchElement <SystemForSearch>(root, UssClasses.DotsEditorCommon.SearchFieldContainer);
            m_SearchElement.RegisterSearchQueryHandler <SystemForSearch>(query =>
            {
                var parseResult = SearchQueryParser.ParseSearchQuery(query);
                m_SystemTreeView.SetFilter(query, parseResult);
            });

            m_SearchElement.AddSearchFilterPopupItem(Constants.SystemSchedule.k_ComponentToken.Substring(0, 1), k_FilterComponentType, k_FilterComponentTypeTooltip);
            m_SearchElement.AddSearchFilterPopupItem(Constants.SystemSchedule.k_SystemDependencyToken.Substring(0, 2), k_FilterSystemDependencies, k_FilterSystemDependenciesTooltip);

            m_SearchElement.AddSearchDataProperty(new PropertyPath(nameof(SystemForSearch.SystemName)));
            m_SearchElement.AddSearchFilterProperty(Constants.SystemSchedule.k_ComponentToken.Substring(0, 1), new PropertyPath(nameof(SystemForSearch.ComponentNamesInQuery)));
            m_SearchElement.AddSearchFilterProperty(Constants.SystemSchedule.k_SystemDependencyToken.Substring(0, 2), new PropertyPath(nameof(SystemForSearch.SystemDependency)));
            m_SearchElement.EnableAutoComplete(ComponentTypeAutoComplete.Instance);
        }
예제 #2
0
        public void Search_WithSearchFilterProperties_ReturnsFilteredResults(string searchString, string searchFilterProperties, int expectedCount)
        {
            var originalData = Generate(100);
            var filteredData = default(TestData[]);

            foreach (var searchFilter in searchFilterProperties.Split(' '))
            {
                var tokenAndPath = searchFilter.Split(':');

                var token = tokenAndPath[0];
                var path  = tokenAndPath[1];

                m_SearchElement.AddSearchFilterProperty(token, new PropertyPath(path));
            }

            m_SearchElement.RegisterSearchQueryHandler <TestData>(search => { filteredData = search.Apply(originalData).ToArray(); });
            m_SearchElement.value = searchString;

            Assert.That(filteredData.Length, Is.EqualTo(expectedCount));
        }