OpenTween.TweenMain.OpenRelatedTab C# (CSharp) Method

OpenRelatedTab() private method

指定されたツイートに対する関連発言タブを開きます
名前の重複が多すぎてタブを作成できない場合
private OpenRelatedTab ( PostClass post ) : Task
post PostClass 表示する対象となるツイート
return Task
        private async Task OpenRelatedTab(PostClass post)
        {
            var tabRelated = this._statuses.GetTabByType<RelatedPostsTabModel>();
            if (tabRelated != null)
            {
                this.RemoveSpecifiedTab(tabRelated.TabName, confirm: false);
            }

            var tabName = this._statuses.MakeTabName("Related Tweets");

            tabRelated = new RelatedPostsTabModel(tabName, post);
            tabRelated.UnreadManage = false;
            tabRelated.Notify = false;

            this._statuses.AddTab(tabRelated);
            this.AddNewTab(tabRelated, startup: false);

            TabPage tabPage;
            for (int i = 0; i < this.ListTab.TabPages.Count; i++)
            {
                tabPage = this.ListTab.TabPages[i];
                if (tabName == tabPage.Text)
                {
                    this.ListTab.SelectedIndex = i;
                    break;
                }
            }

            await this.GetRelatedTweetsAsync(tabRelated);

            tabPage = this.ListTab.TabPages.Cast<TabPage>()
                .FirstOrDefault(x => x.Text == tabRelated.TabName);

            if (tabPage != null)
            {
                // TODO: 非同期更新中にタブが閉じられている場合を厳密に考慮したい

                var listView = (DetailsListView)tabPage.Tag;
                var targetPost = tabRelated.TargetPost;
                var index = tabRelated.IndexOf(targetPost.RetweetedId ?? targetPost.StatusId);

                if (index != -1 && index < listView.Items.Count)
                {
                    listView.SelectedIndices.Add(index);
                    listView.Items[index].Focused = true;
                }
            }
        }

Same methods

TweenMain::OpenRelatedTab ( long statusId ) : Task
TweenMain