Example #1
0
        public void UpdateControls(int inFromIdx)
        {
            if (InvokeRequired)
            {
                BeginInvoke(new UpdateFRData(UpdateControls), new object[] { inFromIdx });
                return;
            }

            foreach (LogView logView in m_logViews)
            {
                LogData baseLogData = logView.m_baseLogData;
                int     toIdx;
                double  logStart;
                double  logEnd;

                lock (baseLogData)
                {
                    toIdx    = baseLogData.FrameRecords.Count - 1;
                    logStart = baseLogData.LogStartInSeconds;
                    logEnd   = baseLogData.LogEndInSeconds;
                }

                int invalidBegin = logView.m_maxValidBaseIdx + 1;
                int fromIdx      = Math.Max(0, Math.Max(inFromIdx, invalidBegin));

                if (fromIdx <= toIdx)
                {
                    logView.ExpandBaseVFRs(toIdx);
                    LogView.CDIResult cdiRes = logView.CreateDisplayInfo(fromIdx, toIdx);
                    logView.CalculateDisplayedValuesAndValueStats(fromIdx, toIdx);

                    CalculateMAandLM(logView, fromIdx, toIdx);
                    UpdateZoneHighlighters(logView, fromIdx, toIdx);
                    CreateDisplayInfo(logView, fromIdx, toIdx, cdiRes);

                    AddNewBucketListTabPages(baseLogData);
                    OnLogChanged();
                    m_statoscopeForm.InvalidateSessionInfoPanel();

                    m_intervalControl.TimeRange = new SpanD(logStart, logEnd);
                    m_intervalControl.RefreshTree();

                    logView.UpdateValidIdxs(toIdx);
                }
            }
        }