internal SearchViewState(SearchTable tableConfig) : this(null, null) { itemSize = (float)DisplayMode.Table; group = null; this.tableConfig = tableConfig; }
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); }
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(); }
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; }
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()); } }
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(); }
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()); }
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); } }
public SearchTable(SearchTable other, string newName = null) : this(newName ?? other.name, other.columns) { }
public static SearchReport Create(SearchContext context, SearchTable table, IEnumerable <SearchItem> items) { return(Create(context, table.columns, items)); }
public static SearchReport Create(SearchContext context, SearchTable table) { return(Create(context, table.columns, null)); }
public TableView(ISearchView hostView, SearchTable tableConfig) : base(hostView) { m_TableId = Guid.NewGuid().ToString("N"); s_ActiveSearchTable = m_TableConfig = tableConfig ?? s_ActiveSearchTable; }
public static SearchReport Create(string query, SearchTable table) { return(Create(query, table, null)); }
public static SearchReport Create(SearchTable table, IEnumerable <SearchItem> items) { return(Create(null as SearchContext, table, items)); }
public static SearchReport Create(SearchTable table) { return(Create(null, table.columns, null)); }
public void SetSearchTable(SearchTable tableConfig) { m_TableId = Guid.NewGuid().ToString("N"); s_ActiveSearchTable = m_TableConfig = tableConfig; UpdatePropertyTable(); }
public TableView(ISearchView hostView, SearchTable tableConfig) : base(hostView) { SetSearchTable(tableConfig ?? s_ActiveSearchTable); }