private void sessionTreeView_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            TabPage           tabPage           = e.Node.Tag as TabPage;
            LogRangeTreeEntry logRangeTreeEntry = e.Node.Tag as LogRangeTreeEntry;

            if (tabPage != null && tabControl1.TabPages.Contains(tabPage))
            {
                tabControl1.SelectedTab = tabPage;
            }
            else if (logRangeTreeEntry != null)
            {
                LogRange        logRange  = logRangeTreeEntry.LogRange;
                List <LogRange> logRanges = new List <LogRange>();
                logRanges.Add(logRange);
                string   name = logRange.m_frr != null ? logRange.m_frr.Name : logRange.m_logData.Name;
                TreeNode sessionTabsBaseNode = CreateLogControlTabPage(logRanges, name, logRangeTreeEntry.ParentTabNode);
            }
        }
        private void sessionTreeView_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TabPage           tabPage           = e.Node.Tag as TabPage;
            LogRangeTreeEntry logRangeTreeEntry = e.Node.Tag as LogRangeTreeEntry;

            if (tabPage != null && tabControl1.TabPages.Contains(tabPage))
            {
                if (tabControl1.SelectedTab == tabPage)
                {
                    // select the session info anyway (tabControl1_Selected() won't be called)
                    LogControl logControl = GetLogControlFromTabPage(tabPage);
                    SetSessionInfoList(logControl);
                }

                tabControl1.SelectedTab = tabPage;
                sessionTreeView.Focus();
            }
            else if (logRangeTreeEntry != null)
            {
                LogRange logRange = logRangeTreeEntry.LogRange;
                SetSessionInfoList(logRange);
            }
        }
        private void sessionTreeView_ItemDrag(object sender, ItemDragEventArgs e)
        {
            TreeNode          treeNode          = (TreeNode)e.Item;
            TabPage           tabPage           = treeNode.Tag as TabPage;
            LogRangeTreeEntry logRangeTreeEntry = treeNode.Tag as LogRangeTreeEntry;
            object            data = null;

            sessionTreeView.SelectedNode = treeNode;

            if (tabPage != null)
            {
                data = GetLogControlFromTabPage(tabPage);
            }
            else if (logRangeTreeEntry != null)
            {
                data = logRangeTreeEntry.LogRange;
            }

            if (data != null)
            {
                sessionTreeView.DoDragDrop(data, DragDropEffects.Copy);
            }
        }