/// <summary>
        /// プロファイルを新規作成
        /// </summary>
        /// <param name="proflist">プロファイルリスト</param>
        public void NewProfileCommand(ConnectProfileList proflist)
        {
            ProfileEditForm dlg = new ProfileEditForm(null);

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                AddProfileCommand(proflist, dlg.ResultProfile);
            }
        }
        /// <summary>
        /// プロファイルをコピーして編集
        /// </summary>
        /// <param name="proflist">プロファイルリスト</param>
        /// <param name="prof">コピー元プロファイル</param>
        public void CopyEditProfileCommand(ConnectProfileList proflist, ConnectProfileStruct prof)
        {
            ProfileEditForm dlg = new ProfileEditForm(prof);

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                proflist.AddProfile(dlg.ResultProfile);
            }
        }
Example #3
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public override void InitializePlugin(IPoderosaWorld poderosa)
        {
            base.InitializePlugin(poderosa);
            _instance = this;

            // 文字列リソース読み込み
            _stringResource = new Poderosa.StringResource("Contrib.ConnectProfile.strings", typeof(ConnectProfilePlugin).Assembly);
            ConnectProfilePlugin.Instance.PoderosaWorld.Culture.AddChangeListener(_stringResource);

            // コマンド登録
            IPluginManager pm = poderosa.PluginManager;

            _coreServices           = (ICoreServices)poderosa.GetAdapter(typeof(ICoreServices));
            _terminalEmulatorPlugin = (ITerminalEmulatorService)pm.FindPlugin("org.poderosa.terminalemulator", typeof(ITerminalEmulatorService));
            ConnectProfileCommand.Register(_coreServices.CommandManager);

            // メニューリスト作成
            ConnectProfileMenuGroup        menulist        = new ConnectProfileMenuGroup();
            ConnectProfileContextMenuGroup contextmenulist = new ConnectProfileContextMenuGroup();

            // メニュー登録
            IExtensionPoint toolmenu = pm.FindExtensionPoint("org.poderosa.menu.tool");

            toolmenu.RegisterExtension(menulist);

            // コンテキストメニュー登録
            IExtensionPoint contextmenu = pm.FindExtensionPoint("org.poderosa.terminalemulator.contextMenu");

            contextmenu.RegisterExtension(contextmenulist);

            // 設定ファイル連携
            _connectProfileOptionSupplier = new ConnectProfileOptionsSupplier();
            _coreServices.PreferenceExtensionPoint.RegisterExtension(_connectProfileOptionSupplier);

            // 接続プロファイル
            _profiles = new ConnectProfileList();
        }
 /// <summary>
 /// 全プロファイルリストを置換
 /// </summary>
 /// <param name="proflist1">置換前プロファイルリスト</param>
 /// <param name="proflist2">置換後プロファイルリスト</param>
 public void ReplaceAllProfileCommand(ConnectProfileList proflist1, ConnectProfileList proflist2)
 {
     proflist1.ReplaceAllProfile(proflist2);
 }
 /// <summary>
 /// プロファイルを削除
 /// </summary>
 /// <param name="proflist">プロファイルリスト</param>
 /// <param name="prof">プロファイル</param>
 public void DeleteProfileCommand(ConnectProfileList proflist, ConnectProfileStruct prof)
 {
     proflist.DeleteProfile(prof);
 }
 /// <summary>
 /// プロファイルを追加
 /// </summary>
 /// <param name="proflist">プロファイルリスト</param>
 /// <param name="prof">プロファイル</param>
 public void AddProfileCommand(ConnectProfileList proflist, ConnectProfileStruct prof)
 {
     proflist.AddProfile(prof);
 }
Example #7
0
        /// <summary>
        /// CSVインポートクリックイベント
        /// </summary>
        private void _csvImportButton_Click(object sender, System.EventArgs e)
        {
            ConnectProfileList   profList = new ConnectProfileList();
            ConnectProfileStruct prof     = new ConnectProfileStruct();
            StreamReader         sr       = null;
            bool appendFlg = false;
            int  lineCnt   = 1;

            if (_openCSVFileDialog.ShowDialog() == DialogResult.OK)
            {
                // インポート実行確認
                if (ConnectProfilePlugin.AskUserYesNoInvoke(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportConfirm"), MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    // 追加/削除確認
                    if (ConnectProfilePlugin.AskUserYesNoInvoke(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportAppendProfileList"), MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        appendFlg = true;
                    }

                    // インポート実行
                    try {
                        sr = new System.IO.StreamReader(_openCSVFileDialog.FileName, System.Text.Encoding.UTF8);
                        while (!sr.EndOfStream)
                        {
                            string line = sr.ReadLine();

                            // 各種チェック
                            if (lineCnt == 1)
                            {
                                // ヘッダーチェック(1行目固定)
                                if (_cmd.CheckCSVHeader(line) != true)
                                {
                                    ConnectProfilePlugin.MessageBoxInvoke(string.Format(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportInvalidHeader"), lineCnt.ToString()), MessageBoxIcon.Error);
                                    return;
                                }
                            }
                            else if ((line == "") || (line.IndexOf("#") == 0))
                            {
                                // 空白行/行頭シャープの行はスキップ
                                lineCnt++;
                                continue;
                            }
                            else
                            {
                                // フィールド数チェック
                                if (_cmd.CheckCSVFieldCount(line) != true)
                                {
                                    ConnectProfilePlugin.MessageBoxInvoke(string.Format(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportInvalidFieldCount"), lineCnt.ToString()), MessageBoxIcon.Error);
                                    return;
                                }

                                // 各項目チェック
                                prof = _cmd.CheckCSVData(line);
                                if (prof == null)
                                {
                                    ConnectProfilePlugin.MessageBoxInvoke(string.Format(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportFailed"), lineCnt.ToString()), MessageBoxIcon.Error);
                                    return;
                                }

                                // プロファイル追加
                                if (appendFlg == true)
                                {
                                    _cmd.AddProfileCommand(ConnectProfilePlugin.Profiles, prof);
                                }
                                else
                                {
                                    _cmd.AddProfileCommand(profList, prof);
                                }
                            }
                            lineCnt++;
                        }
                        // プロファイルリスト全置換
                        if (appendFlg == false)
                        {
                            _cmd.ReplaceAllProfileCommand(ConnectProfilePlugin.Profiles, profList);
                        }

                        RefreshAllProfiles();
                        RefreshSelectCount();
                        ConnectProfilePlugin.MessageBoxInvoke(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportComplete"), MessageBoxIcon.Information);
                    } catch (Exception ex) {
                        ConnectProfilePlugin.MessageBoxInvoke(ex.Message, MessageBoxIcon.Error);
                    } finally {
                        if (sr != null)
                        {
                            sr.Close();
                        }
                    }
                }
                else
                {
                    // キャンセル
                    ConnectProfilePlugin.MessageBoxInvoke(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportCancel"), MessageBoxIcon.Warning);
                }
            }
        }
 /// <summary>
 /// 全プロファイルリストを置換
 /// </summary>
 /// <param name="proflist1">置換前プロファイルリスト</param>
 /// <param name="proflist2">置換後プロファイルリスト</param>
 public void ReplaceAllProfileCommand(ConnectProfileList proflist1, ConnectProfileList proflist2)
 {
     proflist1.ReplaceAllProfile(proflist2);
 }
 /// <summary>
 /// プロファイルを新規作成
 /// </summary>
 /// <param name="proflist">プロファイルリスト</param>
 public void NewProfileCommand(ConnectProfileList proflist)
 {
     ProfileEditForm dlg = new ProfileEditForm(null);
     if (dlg.ShowDialog() == DialogResult.OK) {
         AddProfileCommand(proflist, dlg.ResultProfile);
     }
 }
 /// <summary>
 /// プロファイルを編集
 /// </summary>
 /// <param name="proflist">プロファイルリスト</param>
 /// <param name="prof">プロファイル</param>
 public void EditProfileCommand(ConnectProfileList proflist, ConnectProfileStruct prof)
 {
     ProfileEditForm dlg = new ProfileEditForm(prof);
     if (dlg.ShowDialog() == DialogResult.OK) {
         proflist.ReplaceProfile(prof, dlg.ResultProfile);
     }
 }
 /// <summary>
 /// プロファイルを削除
 /// </summary>
 /// <param name="proflist">プロファイルリスト</param>
 /// <param name="prof">プロファイル</param>
 public void DeleteProfileCommand(ConnectProfileList proflist, ConnectProfileStruct prof)
 {
     proflist.DeleteProfile(prof);
 }
 /// <summary>
 /// プロファイルを追加
 /// </summary>
 /// <param name="proflist">プロファイルリスト</param>
 /// <param name="prof">プロファイル</param>
 public void AddProfileCommand(ConnectProfileList proflist, ConnectProfileStruct prof)
 {
     proflist.AddProfile(prof);
 }
 /// <summary>
 /// 全プロファイルリストを置換
 /// </summary>
 /// <param name="pl">置換後プロファイルリスト</param>
 public void ReplaceAllProfile(ConnectProfileList pl)
 {
     DeleteAllProfile();
     _data = pl._data;
 }
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public override void InitializePlugin(IPoderosaWorld poderosa)
        {
            base.InitializePlugin(poderosa);
            _instance = this;

            // 文字列リソース読み込み
            _stringResource = new Poderosa.StringResource("Contrib.ConnectProfile.strings", typeof(ConnectProfilePlugin).Assembly);
            ConnectProfilePlugin.Instance.PoderosaWorld.Culture.AddChangeListener(_stringResource);

            // コマンド登録
            IPluginManager pm = poderosa.PluginManager;
            _coreServices = (ICoreServices)poderosa.GetAdapter(typeof(ICoreServices));
            _terminalEmulatorPlugin = (ITerminalEmulatorService)pm.FindPlugin("org.poderosa.terminalemulator", typeof(ITerminalEmulatorService));
            ConnectProfileCommand.Register(_coreServices.CommandManager);

            // メニューリスト作成
            ConnectProfileMenuGroup menulist = new ConnectProfileMenuGroup();
            ConnectProfileContextMenuGroup contextmenulist = new ConnectProfileContextMenuGroup();

            // メニュー登録
            IExtensionPoint toolmenu = pm.FindExtensionPoint("org.poderosa.menu.tool");
            toolmenu.RegisterExtension(menulist);

            // コンテキストメニュー登録
            IExtensionPoint contextmenu = pm.FindExtensionPoint("org.poderosa.terminalemulator.contextMenu");
            contextmenu.RegisterExtension(contextmenulist);

            // 設定ファイル連携
            _connectProfileOptionSupplier = new ConnectProfileOptionsSupplier();
            _coreServices.PreferenceExtensionPoint.RegisterExtension(_connectProfileOptionSupplier);

            // 接続プロファイル
            _profiles = new ConnectProfileList();
        }
        /// <summary>
        /// CSVインポートクリックイベント
        /// </summary>
        private void _csvImportButton_Click(object sender, System.EventArgs e)
        {
            ConnectProfileList profList = new ConnectProfileList();
            ConnectProfileStruct prof = new ConnectProfileStruct();
            StreamReader sr = null;
            bool appendFlg = false;
            int lineCnt = 1;

            if (_openCSVFileDialog.ShowDialog() == DialogResult.OK) {
                // インポート実行確認
                if (ConnectProfilePlugin.AskUserYesNoInvoke(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportConfirm"), MessageBoxIcon.Question) == DialogResult.Yes) {
                    // 追加/削除確認
                    if (ConnectProfilePlugin.AskUserYesNoInvoke(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportAppendProfileList"), MessageBoxIcon.Question) == DialogResult.Yes) {
                        appendFlg = true;
                    }

                    // インポート実行
                    try {
                        sr = new System.IO.StreamReader(_openCSVFileDialog.FileName, System.Text.Encoding.UTF8);
                        while (!sr.EndOfStream) {
                            string line = sr.ReadLine();

                            // 各種チェック
                            if (lineCnt == 1) {
                                // ヘッダーチェック(1行目固定)
                                if (_cmd.CheckCSVHeader(line) != true) {
                                    ConnectProfilePlugin.MessageBoxInvoke(string.Format(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportInvalidHeader"), lineCnt.ToString()), MessageBoxIcon.Error);
                                    return;
                                }
                            } else if ((line == "") || (line.IndexOf("#") == 0)) {
                                // 空白行/行頭シャープの行はスキップ
                                lineCnt++;
                                continue;
                            } else {
                                // フィールド数チェック
                                if (_cmd.CheckCSVFieldCount(line) != true) {
                                    ConnectProfilePlugin.MessageBoxInvoke(string.Format(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportInvalidFieldCount"), lineCnt.ToString()), MessageBoxIcon.Error);
                                    return;
                                }

                                // 各項目チェック
                                prof = _cmd.CheckCSVData(line);
                                if (prof == null) {
                                    ConnectProfilePlugin.MessageBoxInvoke(string.Format(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportFailed"), lineCnt.ToString()), MessageBoxIcon.Error);
                                    return;
                                }

                                // プロファイル追加
                                if (appendFlg == true) _cmd.AddProfileCommand(ConnectProfilePlugin.Profiles, prof);
                                else _cmd.AddProfileCommand(profList, prof);
                            }
                            lineCnt++;
                        }
                        // プロファイルリスト全置換
                        if (appendFlg == false) _cmd.ReplaceAllProfileCommand(ConnectProfilePlugin.Profiles, profList);

                        RefreshAllProfiles();
                        RefreshSelectCount();
                        ConnectProfilePlugin.MessageBoxInvoke(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportComplete"), MessageBoxIcon.Information);
                    } catch (Exception ex) {
                        ConnectProfilePlugin.MessageBoxInvoke(ex.Message, MessageBoxIcon.Error);
                    } finally {
                        if (sr != null) sr.Close();
                    }
                } else {
                    // キャンセル
                    ConnectProfilePlugin.MessageBoxInvoke(ConnectProfilePlugin.Strings.GetString("Message.ConnectProfile.CSVImportCancel"), MessageBoxIcon.Warning);
                }
            }
        }
Example #16
0
 /// <summary>
 /// 全プロファイルリストを置換
 /// </summary>
 /// <param name="pl">置換後プロファイルリスト</param>
 public void ReplaceAllProfile(ConnectProfileList pl)
 {
     DeleteAllProfile();
     _data = pl._data;
 }