void OpenLinkRequest(Database.LinkRequestTable link, bool focus) { //TODO this code is the same as the one inSpreadsheetPane, should be put together UIElementsHelper.SetVisibility(VisualElements[2], m_ActiveMode.snapshot.nativeAllocationSites.Count > 0 && m_CurrentTableView == TableDisplayMode.Allocations); var tableRef = new Database.TableReference(link.LinkToOpen.TableName, link.Parameters); var table = m_ActiveMode.SchemaToDisplay.GetTableByReference(tableRef); if (table == null) { UnityEngine.Debug.LogError("No table named '" + link.LinkToOpen.TableName + "' found."); return; } if (link.LinkToOpen.RowWhere != null && link.LinkToOpen.RowWhere.Count > 0) { Database.Table filteredTable = table; if (table.GetMetaData().defaultFilter != null) { filteredTable = table.GetMetaData().defaultFilter.CreateFilter(table); } Database.Operation.ExpressionParsingContext expressionParsingContext = null; if (link.SourceView != null) { expressionParsingContext = link.SourceView.ExpressionParsingContext; } var whereUnion = new Database.View.WhereUnion(link.LinkToOpen.RowWhere, null, null, null, null, m_ActiveMode.SchemaToDisplay, filteredTable, expressionParsingContext); var indices = whereUnion.GetMatchingIndices(link.SourceRow); var newTab = new Database.Operation.IndexedTable(table, new ArrayRange(indices)); OpenTable(tableRef, newTab, focus); } else { OpenTable(tableRef, table, new Database.CellPosition(0, 0), focus); } }
protected Database.Table CreateGroupTable(Database.Operation.GroupedTable table, Database.Operation.GroupedTable.Group g, long groupIndex) { if (SubGroupFilter != null) { return(SubGroupFilter.CreateFilter(table.m_table, g.m_GroupIndice)); } Database.Operation.IndexedTable subTable = new Database.Operation.IndexedTable(table.m_table, g.m_GroupIndice); return(subTable); }
public override Database.Table CreateFilter(Database.Table tableIn, ArrayRange range) { Database.Operation.IndexedTable subTable = new Database.Operation.IndexedTable(tableIn, range); return(CreateFilter(subTable)); }