void ReportFilterChanges() { m_FilterBuffer.Clear(); foreach (var filter in m_Filters.filters) { if (filter is Filter.Sort) { var sortFilter = (filter as Filter.Sort); var level = (sortFilter.SortLevel != null && sortFilter.SortLevel.Count > 0) ? sortFilter.SortLevel[0] : null; if (level == null) { continue; } string columnName = GetColumnName(level); m_FilterBuffer.Add(new MemoryProfilerAnalytics.Filter() { column = columnName, filterName = "Sort", filterInput = level.Order.ToString() }); } else if (filter is Filter.DefaultSort) { var sortFilter = (filter as Filter.DefaultSort); Filter.Sort.Level level = null; if (sortFilter.SortOverride != null && sortFilter.SortOverride.SortLevel != null && sortFilter.SortOverride.SortLevel.Count > 0) { level = sortFilter.SortOverride.SortLevel[0]; } if ((level == null || level.Order == SortOrder.None) && sortFilter.SortDefault != null && sortFilter.SortDefault.SortLevel != null && sortFilter.SortDefault.SortLevel.Count > 0) { level = sortFilter.SortDefault.SortLevel[0]; } if (level == null) { continue; } string columnName = GetColumnName(level); m_FilterBuffer.Add(new MemoryProfilerAnalytics.Filter() { column = columnName, filterName = "Sort", filterInput = level != null ? level.Order.ToString() : null }); } else if (filter is Filter.Group) { m_FilterBuffer.Add(new MemoryProfilerAnalytics.Filter() { column = (filter as Filter.Group).GetColumnName(m_TableDisplay), filterName = "Group" }); } else if (filter is Filter.Match) { var matchFilter = (filter as Filter.Match); m_FilterBuffer.Add(new MemoryProfilerAnalytics.Filter() { column = matchFilter.GetColumnName(m_TableDisplay), filterName = "Match", filterInput = matchFilter.MatchString }); } } MemoryProfilerAnalytics.FiltersChanged(m_TableDisplay.GetName(), m_FilterBuffer); }
string GetColumnName(Filter.Sort.Level sortLevel) { if (sortLevel is Filter.Sort.LevelByIndex) { return(m_TableDisplay.GetMetaData().GetColumnByIndex((sortLevel as Filter.Sort.LevelByIndex).ColumnIndex).Name); } else if (sortLevel is Filter.Sort.LevelByName) { return((sortLevel as Filter.Sort.LevelByName).ColumnName); } return(""); }