/// <summary> /// 画面項目の入力チェックを行う。 /// </summary> /// <returns>入力チェックOK時はtrue。</returns> private bool ValidateInput() { ctlName.Text = ctlName.Text.TrimEnd(); ctlDataFolderPath.Text = ctlDataFolderPath.Text.TrimEnd(); ctlScriptFolderPath.Text = ctlScriptFolderPath.Text.TrimEnd(); ctlScriptFileName.Text = ctlScriptFileName.Text.TrimEnd(); var validator = new ProjectValidator(GetMessageProvider(), Project); ProvidedMessage result; // プロジェクト名 result = validator.ValidateName(ctlName.Text); if (result != null) { ActiveControl = ctlName; InvokeMessage(result); return false; } // データフォルダ result = validator.ValidateDataFolderPath(ctlDataFolderPath.Text); if (result != null) { ActiveControl = ctlDataFolderPath; InvokeMessage(result); return false; } // スクリプトフォルダ result = validator.ValidateScriptFolderPath(ctlScriptFolderPath.Text); if (result != null) { ActiveControl = ctlScriptFolderPath; InvokeMessage(result); return false; } // スクリプトファイル result = validator.ValidateScriptFileName(ctlScriptFileName.Text); if (result != null) { ActiveControl = ctlScriptFileName; InvokeMessage(result); return false; } return true; }
/// <summary> /// プロジェクトプロパティ変更時処理。 /// </summary> /// <param name="parameters">パラメータ。</param> private void ChangeProjectProperty(KeyValueMap parameters) { String name = parameters["Name"]; dynamic value = parameters["Value"]; dynamic oldValue = parameters["oldValue"]; var validator = new ProjectValidator(Message, Project); ProvidedMessage result; if (value != null) value = ((string)value).Trim(); switch (name) { case "Name": result = validator.ValidateName(value); if (result != null) { InvokeMessage(result); return; } Project.Name = value; break; case "ProjectFileName": string newPath = null; result = validator.ValidateProjectFileName( value, allowChangeDirectory: false, newPath: ref newPath ); if (result != null) { InvokeMessage(result); return; } if (newPath.ToLower() != Project.FileName.ToLower()) { try { File.Move(Project.FileName, newPath); } catch (Exception ex) { ProvideMessage("Default.Exception.Error", "プロジェクトファイルのリネーム", ex.Message); return; } Project.FileName = newPath; } break; default: throw new NotImplementedException(); } if (!SaveProject()) return; RefreshProjectNode(); MainForm.RefreshCaption(Project); }