コード例 #1
0
 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();
 }
コード例 #2
0
 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);
     }
 }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
 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();
 }
コード例 #5
0
 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();
 }
コード例 #6
0
 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();
 }
コード例 #7
0
        void OpenLinkRequest(Database.LinkRequestTable link, bool focus, string tableTypeFilter = null, bool select = true)
        {
            List <Where.Builder> tableFilterWhere = null;

            m_CurrentTableTypeFilter = tableTypeFilter;
            if (tableTypeFilter != null)
            {
                tableFilterWhere = new List <Where.Builder>();
                tableFilterWhere.Add(new Where.Builder("Type", Database.Operation.Operator.Equal, new Database.Operation.Expression.MetaExpression(tableTypeFilter, true)));
            }
            //TODO this code is the same as the one inSpreadsheetPane, should be put together
            using (ScopeDebugContext.String("OpenLinkRequest"))
            {
                var tableRef = new Database.TableReference(link.LinkToOpen.TableName, link.Parameters);
                var table    = m_UIState.snapshotMode.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)
                {
                    if (table.GetMetaData().defaultFilter != null)
                    {
                        table = table.GetMetaData().defaultFilter.CreateFilter(table);
                    }
                    Database.Operation.ExpressionParsingContext expressionParsingContext = null;
                    if (link.SourceView != null)
                    {
                        expressionParsingContext = link.SourceView.ExpressionParsingContext;
                    }
                    if (tableFilterWhere != null && tableFilterWhere.Count > 0)
                    {
                        table = FilterTable(table, link.SourceRow, tableFilterWhere);
                    }
                    var  whereUnion  = new WhereUnion(link.LinkToOpen.RowWhere, null, null, null, null, m_UIState.snapshotMode.SchemaToDisplay, table, expressionParsingContext);
                    long rowToSelect = whereUnion.GetIndexFirstMatch(link.SourceRow);
                    if (rowToSelect < 0)
                    {
                        UnityEngine.Debug.LogError("Could not find entry in target table '" + link.LinkToOpen.TableName + "'");
                        return;
                    }
                    OpenTable(tableRef, table, new Database.CellPosition(rowToSelect, 0), focus, select);
                }
                else if (tableFilterWhere != null && tableFilterWhere.Count > 0)
                {
                    table = FilterTable(table, link.SourceRow, tableFilterWhere);
                    OpenTable(tableRef, table, new Database.CellPosition(0, 0), focus, select);
                }
                else
                {
                    OpenTable(tableRef, table, new Database.CellPosition(0, 0), focus, select);
                }
            }
        }
コード例 #8
0
        public void OpenLinkRequest(Database.LinkRequestTable link)
        {
            var tableRef = new Database.TableReference(link.LinkToOpen.TableName, link.Parameters);
            var table    = m_UIState.CurrentMode.GetSchema().GetTableByReference(tableRef);

            if (table == null)
            {
                UnityEngine.Debug.LogError("No table named '" + link.LinkToOpen.TableName + "' found.");
                return;
            }
            OpenLinkRequest(link, tableRef, table);
        }
コード例 #9
0
        public void OpenTable(Database.TableReference tableRef, Database.Table table, bool focus, bool select)
        {
            if (select)
            {
                var objectUID = GetTableObjectUID(table, 0);
                if (objectUID >= 0)
                {
                    SelectObjectByUID(objectUID, focus);
                }
            }

            //m_CurrentTableIndex = m_UIState.GetTableIndex(table);
            m_Spreadsheet              = new UI.DatabaseSpreadsheet(m_UIState.FormattingOptions, table, this);
            m_Spreadsheet.onClickLink += OnSpreadsheetClick;
            m_EventListener.OnRepaint();
        }
コード例 #10
0
        public void OpenTable(Database.TableReference tableRef, Database.Table table, Database.CellPosition pos, bool focus, bool select)
        {
            if (select)
            {
                var objectUID = GetTableObjectUID(table, pos.row);
                if (objectUID >= 0)
                {
                    SelectObjectByUID(objectUID, focus);
                }
            }

            //m_CurrentTableIndex = m_UIState.GetTableIndex(table);
            m_Spreadsheet              = new UI.DatabaseSpreadsheet(m_UIState.DataRenderer, table, this);
            m_Spreadsheet.onClickLink += OnSpreadsheetClick;
            m_Spreadsheet.Goto(pos);
            m_EventListener.OnRepaint();
        }
コード例 #11
0
 void OpenTable(Database.TableReference tableRef, Database.Table table, bool focus)
 {
     m_Spreadsheet              = new UI.DatabaseSpreadsheet(m_UIState.DataRenderer, table, this);
     m_Spreadsheet.onClickLink += OnSpreadsheetClick;
     m_EventListener.OnRepaint();
 }
コード例 #12
0
 public History(SpreadsheetPane spreadsheetPane, UIState.BaseMode mode, Database.CellLink cell)
 {
     Mode               = mode;
     m_Table            = spreadsheetPane.m_CurrentTableLink;
     m_SpreadsheetState = spreadsheetPane.m_Spreadsheet.CurrentState;
 }