Beispiel #1
0
        /// <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());
                    }
                }
            }
        }
Beispiel #2
0
        /// <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;
            }
        }