public GroupedTable(Database.Table table, ArrayRange range, int colToGroupFirst, int colToGroupLast, int[] colGroupOrder, SortOrder[] sortOrder) : base(table.Schema) { m_table = table; if (m_table is ExpandTable) { m_expandTable = (ExpandTable)m_table; } m_Meta = m_table.GetMetaData(); m_GroupedColumnFirst = colToGroupFirst; m_GroupedColumnLast = colToGroupLast; m_ColumnOrder = colGroupOrder; m_SortOrder = sortOrder; int sourceGroupedColumnIndex = m_ColumnOrder[colToGroupFirst]; var col = m_table.GetColumnByIndex(sourceGroupedColumnIndex); var metaCol = m_Meta.GetColumnByIndex(sourceGroupedColumnIndex); if (metaCol.DefaultGroupAlgorithm != null) { m_GroupCollection = metaCol.DefaultGroupAlgorithm.Group(col, range, m_SortOrder[colToGroupFirst]); } else { throw new Exception("Trying to group a column without grouping algorithm. Column '" + metaCol.Name + "' from table '" + m_table.GetName() + "'"); } InitializeFromGroupCollection(col, sourceGroupedColumnIndex); }
void OpenTable(Database.TableReference tableRef, Database.Table table, Database.CellPosition pos, bool focus) { m_Spreadsheet = new UI.DatabaseSpreadsheet(m_UIState.FormattingOptions, table, this); m_Spreadsheet.onClickLink += OnSpreadsheetClick; m_Spreadsheet.Goto(pos); m_EventListener.OnRepaint(); }
// colToGroup is an index from aNewColumnOrder. public GroupedTable(Database.Table table, ArrayRange range, int colToGroup, SortOrder sortOrder, FnCreateGroupTable subTable) : base(table.Schema) { m_table = table; if (m_table is ExpandTable) { m_expandTable = (ExpandTable)m_table; } m_Meta = m_table.GetMetaData(); m_GroupedColumnFirst = 0; m_GroupedColumnLast = 0; m_ColumnOrder = new int[] { colToGroup };// colGroupOrder; m_SortOrder = new SortOrder[1] { sortOrder }; m_createGroupTable = subTable; var col = m_table.GetColumnByIndex(colToGroup); var metaCol = m_Meta.GetColumnByIndex(colToGroup); if (metaCol.DefaultGroupAlgorithm != null) { m_GroupCollection = metaCol.DefaultGroupAlgorithm.Group(col, range, sortOrder); } else { throw new Exception("Trying to group a column without grouping algorithm. Column '" + metaCol.Name + "' from table '" + m_table.GetName() + "'"); } InitializeFromGroupCollection(col, colToGroup); }
Database.Table FilterTable(Database.Table table, long row, List <Database.View.Where.Builder> tableFilterWhere) { var tableFilterWhereUnion = new Database.View.WhereUnion(tableFilterWhere, null, null, null, null, m_UIState.snapshotMode.SchemaToDisplay, table, null); var indices = tableFilterWhereUnion.GetMatchingIndices(row); return(new Database.Operation.IndexedTable(table, new ArrayRange(indices))); }
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); } }
public bool OpenLinkRequest(Database.LinkRequestTable link, Database.TableReference tableLink, Database.Table table) { using (ScopeDebugContext.String("OpenLinkRequest")) { 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); } var whereUnion = new Database.View.WhereUnion(link.LinkToOpen.RowWhere, null, null, null, null, m_UIState.CurrentMode.GetSchema(), filteredTable, link.SourceView == null ? null : link.SourceView.ExpressionParsingContext); long rowToSelect = whereUnion.GetIndexFirstMatch(link.SourceRow); if (rowToSelect < 0) { DebugUtility.LogWarning("Could not find entry in target table '" + link.LinkToOpen.TableName + "'"); return(false); } DebugUtility.DebugLog("Opening table '" + link.LinkToOpen.TableName + "' at row " + rowToSelect); OpenTable(tableLink, table, new Database.CellPosition(rowToSelect, 0)); } else { OpenTable(tableLink, table, new Database.CellPosition(0, 0)); } return(true); } }
public override bool OnGui(Database.Table sourceTable, ref bool dirty) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.BeginVertical(); int iLevelToRemove = -1; for (int i = 0; i != SortLevel.Count; ++i) { string sortName = GetSortName(SortLevel[i].Order); string colName = SortLevel[i].GetColumnName(sourceTable); EditorGUILayout.BeginHorizontal(); if (OnGui_RemoveButton()) { iLevelToRemove = i; } GUILayout.Label("Sort" + sortName + " '" + colName + "'"); EditorGUILayout.EndHorizontal(); } if (iLevelToRemove >= 0) { dirty = true; SortLevel.RemoveAt(iLevelToRemove); } EditorGUILayout.EndVertical(); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); //remove this filter if it's empty return(SortLevel.Count == 0); }
public override void UpdateColumnState(Database.Table sourceTable, ColumnState[] colState) { foreach (var l in SortLevel) { colState[l.GetColumnIndex(sourceTable)].Sorted = l.Order; } }
public override ViewPane GetDefaultView(UIState uiState, IViewPaneEventListener viewPaneEventListener) { //TODO: delete this method once the default for diff is treemap Database.Table table = null; for (int i = 1; i < uiState.CurrentMode.TableNames.Length; i++) { if (uiState.CurrentMode.TableNames[i].Contains(k_DefaultDiffViewTable)) { table = uiState.CurrentMode.GetTableByIndex(i - 1); } } if (table == null) { table = uiState.CurrentMode.GetTableByIndex(Mathf.Min(0, m_TableNames.Length - 1)); } if (table.Update()) { UpdateTableSelectionNames(); } var pane = new UI.SpreadsheetPane(uiState, viewPaneEventListener); pane.OpenTable(new Database.TableReference(table.GetName()), table); return(pane); }
public IndexedTable(Database.Table sourceTable) : base(sourceTable.Schema) { m_SourceTable = sourceTable; m_Meta = m_SourceTable.GetMetaData(); CreateColumn(); }
public override void UpdateColumnState(Database.Table sourceTable, ColumnState[] colState) { foreach (var f in filters) { f.UpdateColumnState(sourceTable, colState); } }
public void Test1() { string url = "server=localhost;database=devtest;uid=dev;pwd=devtest12345"; DatabaseMySql sqlserver = new DatabaseMySql(url); Database.Table table = sqlserver.OpenTable("test_1"); sqlserver.Flush(null, () => { { ByteBuffer key = ByteBuffer.Allocate(); key.WriteInt(1); table.Remove(key); } { ByteBuffer key = ByteBuffer.Allocate(); key.WriteInt(2); table.Remove(key); } } ); Assert.AreEqual(0, table.Walk(PrintRecord)); sqlserver.Flush(null, () => { { ByteBuffer key = ByteBuffer.Allocate(); key.WriteInt(1); ByteBuffer value = ByteBuffer.Allocate(); value.WriteInt(1); table.Replace(key, value); } { ByteBuffer key = ByteBuffer.Allocate(); key.WriteInt(2); ByteBuffer value = ByteBuffer.Allocate(); value.WriteInt(2); table.Replace(key, value); } } ); { ByteBuffer key = ByteBuffer.Allocate(); key.WriteInt(1); ByteBuffer value = table.Find(key); Assert.IsNotNull(value); Assert.AreEqual(1, value.ReadInt()); Assert.IsTrue(value.ReadIndex == value.WriteIndex); } { ByteBuffer key = ByteBuffer.Allocate(); key.WriteInt(2); ByteBuffer value = table.Find(key); Assert.IsNotNull(value); Assert.AreEqual(2, value.ReadInt()); Assert.IsTrue(value.ReadIndex == value.WriteIndex); } Assert.AreEqual(2, table.Walk(PrintRecord)); }
public void Test1() { string url = "Server=(localdb)\\MSSQLLocalDB;Integrated Security=true"; DatabaseSqlServer sqlserver = new DatabaseSqlServer(url); Database.Table table = sqlserver.OpenTable("test1"); sqlserver.Flush(null, () => { { ByteBuffer key = ByteBuffer.Allocate(); key.WriteInt(1); table.Remove(key); } { ByteBuffer key = ByteBuffer.Allocate(); key.WriteInt(2); table.Remove(key); } } ); Assert.AreEqual(0, table.Walk(PrintRecord)); sqlserver.Flush(null, () => { { ByteBuffer key = ByteBuffer.Allocate(); key.WriteInt(1); ByteBuffer value = ByteBuffer.Allocate(); value.WriteInt(1); table.Replace(key, value); } { ByteBuffer key = ByteBuffer.Allocate(); key.WriteInt(2); ByteBuffer value = ByteBuffer.Allocate(); value.WriteInt(2); table.Replace(key, value); } } ); { ByteBuffer key = ByteBuffer.Allocate(); key.WriteInt(1); ByteBuffer value = table.Find(key); Assert.IsNotNull(value); Assert.AreEqual(1, value.ReadInt()); Assert.IsTrue(value.ReadIndex == value.WriteIndex); } { ByteBuffer key = ByteBuffer.Allocate(); key.WriteInt(2); ByteBuffer value = table.Find(key); Assert.IsNotNull(value); Assert.AreEqual(2, value.ReadInt()); Assert.IsTrue(value.ReadIndex == value.WriteIndex); } Assert.AreEqual(2, table.Walk(PrintRecord)); }
public MatchTable(Database.Table sourceTable, int columnIndex, string matchString, ArrayRange range) : base(sourceTable) { m_columnIndex = columnIndex; m_matchString = matchString; m_Range = range; UpdateIndices(); }
public IndexedTable(Database.Table sourceTable, ArrayRange indices) : base(sourceTable.Schema) { this.indices = indices.ToArray(); m_SourceTable = sourceTable; m_Meta = m_SourceTable.GetMetaData(); CreateColumn(); }
public override Database.Table CreateFilter(Database.Table tableIn) { Database.Table t = tableIn; foreach (var f in filters) { t = f.CreateFilter(t); } return(t); }
public void OpenTable(Database.TableReference tableRef, Database.Table table) { CloseCurrentTable(); m_CurrentTableLink = tableRef; CurrentTableIndex = m_UIState.CurrentMode.GetTableIndex(table); m_Spreadsheet = new UI.DatabaseSpreadsheet(m_UIState.FormattingOptions, table, this); m_Spreadsheet.onClickLink += OnSpreadsheetClick; m_EventListener.OnRepaint(); }
public void UpdateDisplayTable(List <Database.CellPosition> expandedCells = null) { UpdateColumnState(); m_TableDisplay = m_Filters.CreateFilter(m_TableSource); UpdateExpandedState(expandedCells); UpdateDataState(); ResetGUIState(); }
public void OpenTable(Database.TableReference tableRef, Database.Table table, Database.CellPosition pos) { CloseCurrentTable(); m_CurrentTableLink = tableRef; CurrentTableIndex = m_UIState.CurrentMode.GetTableIndex(table); m_Spreadsheet = new UI.DatabaseSpreadsheet(m_UIState.DataRenderer, table, this); m_Spreadsheet.onClickLink += OnSpreadsheetClick; m_Spreadsheet.Goto(pos); m_EventListener.OnRepaint(); }
public DatabaseSpreadsheet(FormattingOptions formattingOptions, Database.Table table, IViewEventListener listener, State state) : base(listener) { m_TableSource = table; m_TableDisplay = table; m_FormattingOptions = formattingOptions; InitSplitter(); CurrentState = state; }
public DatabaseSpreadsheet(FormattingOptions formattingOptions, Database.Table table, IViewEventListener listener) : base(listener) { m_TableSource = table; m_TableDisplay = table; m_FormattingOptions = formattingOptions; InitSplitter(); InitDefaultTableFilter(); }
public override Database.Table CreateFilter(Database.Table tableIn, ArrayRange range) { if (String.IsNullOrEmpty(m_MatchString)) { return(tableIn); } var tableOut = new MatchTable(tableIn, m_ColumnIndex, m_MatchString, range); return(tableOut); }
public DatabaseSpreadsheet(DataRenderer dataRenderer, Database.Table table, IViewEventListener listener) : base(listener) { m_TableSource = table; m_TableDisplay = table; m_DataRenderer = dataRenderer; InitSplitter(); InitDefaultTableFilter(); }
public DatabaseSpreadsheet(DataRenderer dataRenderer, Database.Table table, IViewEventListener listener, State state) : base(listener) { m_TableSource = table; m_TableDisplay = table; m_DataRenderer = dataRenderer; InitSplitter(); CurrentState = state; }
public void OpenTable(Database.TableReference tableRef, Database.Table table) { Profiling.StartProfiling("Profile_OpenTable_" + table.GetName()); CloseCurrentTable(); m_CurrentTableLink = tableRef; CurrentTableIndex = m_UIState.CurrentMode.GetTableIndex(table); m_Spreadsheet = new UI.DatabaseSpreadsheet(m_UIState.DataRenderer, table, this); m_Spreadsheet.onClickLink += OnSpreadsheetClick; m_EventListener.OnRepaint(); }
// Get a patch tuple private object[] GetPatch(int x, int z) { Database.Table t = _db.Tables["Patch"]; foreach (object[] tuple in t.Entries) { if ((int)tuple[2] == x && (int)tuple[3] == z) { return(tuple); } } return(null); }
public override Database.Table CreateFilter(Database.Table tableIn) { if (SortOverride != null) { return(SortOverride.CreateFilter(tableIn)); } if (SortDefault != null) { return(SortDefault.CreateFilter(tableIn)); } return(tableIn); }
public override Database.Table CreateFilter(Database.Table tableIn, ArrayRange range) { if (SortOverride != null) { return(SortOverride.CreateFilter(tableIn, range)); } if (SortDefault != null) { return(SortDefault.CreateFilter(tableIn, range)); } return(new Database.Operation.IndexedTable(tableIn, range)); }
public override void UpdateColumnState(Database.Table sourceTable, ColumnState[] colState) { if (SortOverride != null) { SortOverride.UpdateColumnState(sourceTable, colState); } else if (SortDefault != null) { foreach (var l in SortDefault.SortLevel) { colState[l.GetColumnIndex(sourceTable)].DefaultSorted = l.Order; } } }
public int m_ColumnIndexFirst; //index into m_SortColumn public SortedTable(Database.Table table, int[] sortColumn, SortOrder[] sortOrder, int columnIndexFirst, ArrayRange indices) : base(table.Schema) { m_SourceTable = table; m_Meta = m_SourceTable.GetMetaData(); m_SortColumn = sortColumn; m_SortOrder = sortOrder; m_ColumnIndexFirst = columnIndexFirst; this.indices = SortRange(indices, sortColumn, sortOrder, m_ColumnIndexFirst); //create columns CreateColumn(); }