/// <summary> /// セッションリストチェックボックスイベント /// </summary> private void _sessionListView_ItemChecked(object sender, ItemCheckedEventArgs e) { if (_Initialized == true) { // ボタン有効/無効化 if (_sessionListView.CheckedItems.Count > 0) { _okButton.Enabled = true; _commandBox.Enabled = true; _clearBufferButton.Enabled = true; _sendNewLineButton.Enabled = true; _sendCtrlCButton.Enabled = true; } else { _okButton.Enabled = false; _commandBox.Enabled = false; _clearBufferButton.Enabled = false; _sendNewLineButton.Enabled = false; _sendCtrlCButton.Enabled = false; } // 選択済みリスト保存(リスト更新時復元用) if (_refreshingFlg == false) { _selectSessionsHash.Clear(); foreach (ListViewItem li in _sessionListView.CheckedItems) { IPoderosaDocument doc = li.Tag as IPoderosaDocument; _selectSessionsHash.Add(doc.GetHashCode()); } } } }
/// <summary> /// セッションリスト更新 /// </summary> private void RefreshSessionList(bool _bFirst = false) { _refreshingFlg = true; _sessionListView.BeginUpdate(); _sessionListView.Items.Clear(); ISessionManager sm = BroadcastCommandPlugin.Instance.SessionManager; IPoderosaDocument[] docs = sm.GetDocuments(_window); IWindowManager wm = (IWindowManager)BroadcastCommandPlugin.Instance.WindowManager; int docCnt = wm.ActiveWindow.DocumentTabFeature.DocumentCount; for (int i = 0; i < docCnt; i++) { IPoderosaDocument doc = wm.ActiveWindow.DocumentTabFeature.GetAtOrNull(i); int hash = doc.GetHashCode(); // リストオブジェクト作成 ListViewItem li = new ListViewItem(); // データ代入 li.Text = (i + 1).ToString(); // タブ番号 li.SubItems.Add(doc.Caption); // ホスト名 // 初回呼び出し時は全部選択する if (_bFirst == true) { li.Checked = true; } foreach (int tmphash in _selectSessionsHash) { if (tmphash == hash) { li.Checked = true; break; } } // タグ追加 li.Tag = doc; // アイテム追加 _sessionListView.Items.Add(li); } _sessionListView.EndUpdate(); _sessionListView.SelectedItems.Clear(); _refreshingFlg = false; // 全選択ボタン有効/無効化 _listAllSelectButton.Enabled = _sessionListView.Items.Count > 0 ? true : false; //全選択を行った状態にする if (_bFirst == true) { _listAllSelectButton.Text = BroadcastCommandPlugin.Strings.GetString("Form.BroadcastCommand._listAllSelectButton.Uncheck"); _allSelectFlg = true; } }