コード例 #1
0
        public void LogControl_DragDrop(object sender, DragEventArgs e)
        {
            LogControl sourceLogControl = GetDragEventSourceLogControl(e);
            LogRange   sourceLogRange   = GetDragEventSourceLogRange(e);

            if (sourceLogControl != null || sourceLogRange != null)
            {
                foreach (LogView logView in m_logViews)
                {
                    logView.SetSingleOrdiColour(RGB.RandomHueRGB());
                }

                foreach (Control lliControl in logListTableLayoutPanel.Controls)
                {
                    LogListItem lli = (LogListItem)lliControl;
                    lli.UpdateContents();
                }

                logListTableLayoutPanel.SuspendLayout();
                {
                    if (sourceLogControl != null)
                    {
                        foreach (LogView logView in sourceLogControl.m_logViews)
                        {
                            FrameRecordRange frr      = logView.m_logData == logView.m_baseLogData ? null : logView.m_logData.FrameRecordRange;
                            LogRange         logRange = new LogRange(logView.m_baseLogData, frr);
                            AddNewLogRange(logRange);
                        }
                    }
                    else if (sourceLogRange != null)
                    {
                        AddNewLogRange(sourceLogRange);
                    }
                }
                logListTableLayoutPanel.ResumeLayout();

                m_statoscopeForm.SetSessionInfoList(this);

                RefreshItemInfoPanel();
                UpdateControls(0);
                SetUMTreeViewNodeColours();

                foreach (LogView logView in m_logViews)
                {
                    // this is required as in calculating value stats in UpdateControls(), an OnPaint could happen and use invalid data
                    logView.DeleteDisplayListsEndingIn(".MA");
                    logView.DeleteDisplayListsEndingIn(".LM");
                }
            }
            else
            {
                m_statoscopeForm.StatoscopeForm_DragDrop(sender, e);
            }
        }
コード例 #2
0
        void SerializeInLogViewStates(SerializeState serializeState)
        {
            if (serializeState.LogViewStates == null)
            {
                return;
            }

            for (int i = 0; i < m_logViews.Count; i++)
            {
                LogView logView = m_logViews[i];
                LogViewSerializeState lvss;

                lock (logView.m_logData)
                {
                    if (i < serializeState.LogViewStates.Length)
                    {
                        lvss = serializeState.LogViewStates[i];

                        if ((m_logViews.Count > 1) && (lvss.SingleORDIColour != null))
                        {
                            logView.m_singleOrdiColour = lvss.SingleORDIColour;
                        }
                    }
                    else
                    {
                        lvss = serializeState.LogViewStates.Last();
                    }

                    if (!(logView.m_logData is SocketLogData))                          // this is only a temporary quick fix - fixing this properly will take some time
                    {
                        UserMarkerRDI    startURDI = GetFirstURDIMatching(lvss.StartUM, logView);
                        UserMarkerRDI    endURDI   = GetFirstURDIMatching(lvss.EndUM, logView);
                        FrameRecordRange frr       = logView.GetFrameRecordRange();
                        int startIdx = (startURDI != null) ? startURDI.m_uml.m_fr.Index : frr.StartIdx;
                        int endIdx   = (endURDI != null) ? endURDI.m_uml.m_fr.Index : frr.EndIdx;

                        logView.SetFrameRecordRange(Math.Min(startIdx, endIdx), Math.Max(startIdx, endIdx));

                        logView.m_startUM = (startURDI != null) ? startURDI.DisplayUserMarker : null;
                        logView.m_endUM   = (endURDI != null) ? endURDI.DisplayUserMarker : null;
                    }

                    foreach (Control lliControl in logListTableLayoutPanel.Controls)
                    {
                        LogListItem lli = (LogListItem)lliControl;
                        lli.UpdateContents();
                    }

                    SetUMTreeViewNodeColours();
                }
            }
        }