1 // ================================================================================================
3 // Wikipedia翻訳支援ツール設定名入力ダイアログクラスソース</summary>
5 // <copyright file="AddConfigDialog.cs" company="honeplusのメモ帳">
6 // Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
9 // ================================================================================================
11 namespace Honememo.Wptscs
14 using System.Collections.Generic;
16 using System.Windows.Forms;
17 using Honememo.Models;
18 using Honememo.Wptscs.Logics;
19 using Honememo.Wptscs.Models;
20 using Honememo.Wptscs.Properties;
21 using Honememo.Wptscs.Utilities;
24 /// Wikipedia翻訳支援ツール設定名入力ダイアログのクラスです。
26 public partial class AddConfigDialog : Form
33 private IgnoreCaseSet configNames;
40 /// コンストラクタ。初期化メソッド呼び出しのみ。
42 /// <param name="configNames">登録済みの設定ファイル名。</param>
43 /// <exception cref="ArgumentNullException"><paramref name="configNames"/>が<c>null</c>。</exception>
44 public AddConfigDialog(IEnumerable<string> configNames)
46 // Windows フォーム デザイナで生成されたコード
47 this.InitializeComponent();
49 // 重複チェック用の既存の設定名一覧を受け取る
50 this.configNames = new IgnoreCaseSet(configNames);
60 public string ConfigName
68 #region フォームの各イベントのメソッド
71 /// OKボタン押下時の処理。データ保存。
73 /// <param name="sender">イベント発生オブジェクト。</param>
74 /// <param name="e">発生したイベント。</param>
75 private void ButtonOk_Click(object sender, EventArgs e)
78 this.ConfigName = this.textBoxName.Text.Trim();
79 if (String.IsNullOrEmpty(this.ConfigName))
81 FormUtils.WarningDialog(Resources.WarningMessageEmptyConfigName);
82 this.textBoxName.Focus();
85 else if (this.ConfigName.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0)
87 FormUtils.WarningDialog(
88 Resources.WarningMessageInvalidConfigName,
89 String.Join(", ", Path.GetInvalidFileNameChars()));
90 this.textBoxName.Focus();
93 else if (this.configNames.Contains(this.ConfigName))
95 FormUtils.WarningDialog(Resources.WarningMessageDuplicateConfigName);
96 this.textBoxName.Focus();
100 // テキストボックスの設定名を保存、設定名からMediaWiki用のパラメータで設定を作成
101 Config config = new Config();
102 config.File = this.ConfigName + Settings.Default.ConfigurationExtension;
103 config.Translator = typeof(MediaWikiTranslator);
106 // 設定ファイルを一旦保存、成功なら画面を閉じる
107 // ※ エラーの場合、どうしても駄目ならキャンセルボタンで閉じてもらう
109 this.DialogResult = DialogResult.OK;
114 System.Diagnostics.Debug.WriteLine(ex.ToString());
115 FormUtils.ErrorDialog(Resources.ErrorMessageConfigSaveFailed, ex.Message);