// ================================================================================================ // // Wikipedia翻訳支援ツール設定名入力ダイアログクラスソース // // // Copyright (C) 2012 Honeplus. All rights reserved. // // Honeplus // ================================================================================================ namespace Honememo.Wptscs { using System; using System.Collections.Generic; using System.IO; using System.Windows.Forms; using Honememo.Models; using Honememo.Wptscs.Logics; using Honememo.Wptscs.Models; using Honememo.Wptscs.Properties; using Honememo.Wptscs.Utilities; /// /// Wikipedia翻訳支援ツール設定名入力ダイアログのクラスです。 /// public partial class AddConfigDialog : Form { #region private変数 /// /// 登録済みの設定ファイル名。 /// private IgnoreCaseSet configNames; #endregion #region コンストラクタ /// /// コンストラクタ。初期化メソッド呼び出しのみ。 /// /// 登録済みの設定ファイル名。 /// null public AddConfigDialog(IEnumerable configNames) { // Windows フォーム デザイナで生成されたコード this.InitializeComponent(); // 重複チェック用の既存の設定名一覧を受け取る this.configNames = new IgnoreCaseSet(configNames); } #endregion #region プロパティ /// /// 設定名(データやり取り用)。 /// public string ConfigName { get; set; } #endregion #region フォームの各イベントのメソッド /// /// OKボタン押下時の処理。データ保存。 /// /// イベント発生オブジェクト。 /// 発生したイベント。 private void ButtonOk_Click(object sender, EventArgs e) { // 入力値チェック this.ConfigName = this.textBoxName.Text.Trim(); if (string.IsNullOrEmpty(this.ConfigName)) { FormUtils.WarningDialog(Resources.WarningMessageEmptyConfigName); this.textBoxName.Focus(); return; } else if (this.ConfigName.IndexOfAny(Path.GetInvalidFileNameChars()) >= 0) { FormUtils.WarningDialog( Resources.WarningMessageInvalidConfigName, string.Join(", ", Path.GetInvalidFileNameChars())); this.textBoxName.Focus(); return; } else if (this.configNames.Contains(this.ConfigName)) { FormUtils.WarningDialog(Resources.WarningMessageDuplicateConfigName); this.textBoxName.Focus(); return; } // テキストボックスの設定名を保存、設定名からMediaWiki用のパラメータで設定を作成 Config config = new Config(); config.File = this.ConfigName + Settings.Default.ConfigurationExtension; config.Translator = typeof(MediaWikiTranslator); try { // 設定ファイルを一旦保存、成功なら画面を閉じる // ※ エラーの場合、どうしても駄目ならキャンセルボタンで閉じてもらう config.Save(); this.DialogResult = DialogResult.OK; } catch (Exception ex) { // 異常時はエラーメッセージを表示 System.Diagnostics.Debug.WriteLine(ex.ToString()); FormUtils.ErrorDialog(Resources.ErrorMessageConfigSaveFailed, ex.Message); } } #endregion } }