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("");
 }