internal SearchViewState(SearchTable tableConfig)
     : this(null, null)
 {
     itemSize         = (float)DisplayMode.Table;
     group            = null;
     this.tableConfig = tableConfig;
 }
Exemplo n.º 2
0
        public bool SetSearchTable(SearchTable tableConfig)
        {
            if (tableConfig == m_TableConfig)
            {
                return(false);
            }

            m_TableId     = Guid.NewGuid().ToString("N");
            m_TableConfig = tableConfig;
            if (m_TableConfig != null)
            {
                if (m_TableConfig.columns.Length == 0)
                {
                    SetupColumns();
                }
                else
                {
                    UpdatePropertyTable();
                }

                return(true);
            }

            return(false);
        }
Exemplo n.º 3
0
        public static SearchReport Create(string query, SearchTable table, IEnumerable <SearchItem> items)
        {
            var report = Create(table, items);

            report.query = query;
            return(report);
        }
        private void InitializeReport(string path)
        {
            m_ReportPath = path;
            m_Report     = SearchReport.LoadFromFile(path);
            m_ReportName = Path.GetFileNameWithoutExtension(path);
            var searchExpressionProvider = SearchService.GetProvider("expression");

            m_Items      = m_Report.CreateSearchItems(searchExpressionProvider).ToList();
            titleContent = new GUIContent($"{m_ReportName} ({m_Items.Count})", m_ReportPath);

            m_FocusSearchField = true;

            // ITableView
            m_TableConfig = new SearchTable(m_ReportName, m_Report.columns);
            for (int i = 0; i < m_TableConfig.columns.Length; ++i)
            {
                InitializeColumn(m_TableConfig.columns[i]);
            }

            m_QueryEngine = new QueryEngine <int>(k_QueryEngineOptions);
            foreach (var column in m_Report.columns)
            {
                var filterName = column.content.text.Replace(" ", "");
                m_QueryEngine.AddFilter(filterName, i => AddFilter(i, column.selector));
                if (filterName != filterName.ToLowerInvariant())
                {
                    m_QueryEngine.AddFilter(filterName.ToLowerInvariant(), i => AddFilter(i, column.selector));
                }

                SearchValue.SetupEngine(m_QueryEngine);
            }
            m_QueryEngine.SetSearchDataCallback(i => m_Items[i].GetFields().Select(f => (f.value ?? "").ToString()), StringComparison.OrdinalIgnoreCase);

            UpdatePropertyTable();
        }
Exemplo n.º 5
0
 public void SetDirty()
 {
     s_ActiveSearchTable = m_TableConfig;
     if (m_TableConfig == null)
     {
         return;
     }
     searchView.Repaint();
 }
 internal SearchViewState(SearchContext context, Action <SearchItem, bool> selectHandler)
 {
     m_Context          = context;
     sessionId          = Guid.NewGuid().ToString("N");
     this.selectHandler = selectHandler;
     trackingHandler    = null;
     filterHandler      = null;
     title       = "item";
     itemSize    = (float)DisplayMode.Grid;
     position    = Rect.zero;
     searchText  = context?.searchText ?? string.Empty;
     tableConfig = null;
 }
Exemplo n.º 7
0
        public void SetupColumns(IEnumerable <SearchItem> items, SearchColumnFlags options)
        {
            var fields = new HashSet <SearchItem.Field>();

            foreach (var e in items ?? GetElements())
            {
                fields.UnionWith(e.GetFields().Where(f => f.value != null));
            }

            if (m_TableConfig != null && fields.Count > 0)
            {
                m_TableConfig.columns = fields.Select(f => ItemSelectors.CreateColumn(f.label, f.name, options: options)).ToArray();
                SetSearchTable(m_TableConfig);
            }
            else
            {
                SetSearchTable(SearchTable.CreateDefault());
            }
        }
Exemplo n.º 8
0
        private void Update()
        {
            if (items == null)
            {
                return;
            }

            // Set a default configuration if none
            if (m_TableConfig == null)
            {
                var sessionSearchTableData = SessionState.GetString(TableConfigSessionKey, null);
                if (string.IsNullOrEmpty(sessionSearchTableData))
                {
                    SetSearchTable(SearchTable.CreateDefault());
                }
                else
                {
                    SetSearchTable(SearchTable.Import(sessionSearchTableData));
                }
            }

            UpdatePropertyTable();
        }
Exemplo n.º 9
0
        SearchTable LoadDefaultTableConfig(bool reset, string id = null, SearchTable defaultConfig = null)
        {
            if (!reset)
            {
                var sessionSearchTableData = SessionState.GetString(GetDefaultGroupId(id), null);
                if (!string.IsNullOrEmpty(sessionSearchTableData))
                {
                    return(SearchTable.Import(sessionSearchTableData));
                }
            }

            if (searchView is QuickSearch qs)
            {
                var providers = qs.context.GetProviders();
                var provider  = providers.Count == 1 ? providers.FirstOrDefault() : SearchService.GetProvider(qs.currentGroup);
                if (provider?.tableConfig != null)
                {
                    return(provider.tableConfig(context));
                }
            }

            return(defaultConfig ?? SearchTable.CreateDefault());
        }
Exemplo n.º 10
0
        public void SetupColumns(IList <SearchField> fields)
        {
            SearchTable tableConfig = GetSearchTable();

            var columns = new List <SearchColumn>(tableConfig.columns.Where(c =>
            {
                var fp = fields.IndexOf(new SearchField(c.selector));
                if (fp != -1)
                {
                    if (!string.IsNullOrEmpty(fields[fp].alias))
                    {
                        c.content.text = fields[fp].alias;
                    }
                    else if (fields[fp].value is string alias && !string.IsNullOrEmpty(alias))
                    {
                        c.content.text = alias;
                    }
                    fields.RemoveAt(fp);
                    return(true);
                }

                return((c.options & SearchColumnFlags.Volatile) == 0);
            }));

            foreach (var f in fields)
            {
                var c = ItemSelectors.CreateColumn(f.label, f.name);
                c.options |= SearchColumnFlags.Volatile;
                columns.Add(c);
            }

            if (columns.Count > 0)
            {
                tableConfig.columns = columns.ToArray();
                SetSearchTable(tableConfig);
            }
        }
Exemplo n.º 11
0
 public SearchTable(SearchTable other, string newName = null)
     : this(newName ?? other.name, other.columns)
 {
 }
Exemplo n.º 12
0
 public static SearchReport Create(SearchContext context, SearchTable table, IEnumerable <SearchItem> items)
 {
     return(Create(context, table.columns, items));
 }
Exemplo n.º 13
0
 public static SearchReport Create(SearchContext context, SearchTable table)
 {
     return(Create(context, table.columns, null));
 }
Exemplo n.º 14
0
 public TableView(ISearchView hostView, SearchTable tableConfig)
     : base(hostView)
 {
     m_TableId           = Guid.NewGuid().ToString("N");
     s_ActiveSearchTable = m_TableConfig = tableConfig ?? s_ActiveSearchTable;
 }
Exemplo n.º 15
0
 public static SearchReport Create(string query, SearchTable table)
 {
     return(Create(query, table, null));
 }
Exemplo n.º 16
0
 public static SearchReport Create(SearchTable table, IEnumerable <SearchItem> items)
 {
     return(Create(null as SearchContext, table, items));
 }
Exemplo n.º 17
0
 public static SearchReport Create(SearchTable table)
 {
     return(Create(null, table.columns, null));
 }
Exemplo n.º 18
0
 public void SetSearchTable(SearchTable tableConfig)
 {
     m_TableId           = Guid.NewGuid().ToString("N");
     s_ActiveSearchTable = m_TableConfig = tableConfig;
     UpdatePropertyTable();
 }
Exemplo n.º 19
0
 public TableView(ISearchView hostView, SearchTable tableConfig)
     : base(hostView)
 {
     SetSearchTable(tableConfig ?? s_ActiveSearchTable);
 }