Пример #1
0
        /// <summary>
        /// 画面項目の入力チェックを行う。
        /// </summary>
        /// <returns>入力チェックOK時はtrue。</returns>
        private bool ValidateInput()
        {
            ctlName.Text = ctlName.Text.TrimEnd();
            ctlFile.Text = ctlFile.Text.TrimEnd();

            var message = GetMessageProvider();
            var validator = new DatabaseDefinitionValidator(message, Project, Definition);
            ProvidedMessage result;

            // データベース名
            result = validator.ValidateName(ctlName.Text);
            if (result != null)
            {
                ActiveControl = ctlName;
                InvokeMessage(result);

                return false;
            }

            // データベースファイル名
            var file = ctlFile.Text;
            result = validator.ValidateFile(ref file);
            ctlFile.Text = file;

            if (result != null)
            {
                ActiveControl = ctlFile;
                InvokeMessage(result);

                return false;
            }

            if (Definition != null)
            {
                if (Definition.File.ToLower() != ctlFile.Text.ToLower())
                {
                    var fullPath = Path.GetFullPath(Path.Combine(Project.DataFolderFullPath, ctlFile.Text));
                    if (File.Exists(fullPath))
                    {
                        if (ProvideMessage("DatabaseDefinition.Validation.File.Exists.Confirm") != DialogResult.Yes)
                        {
                            return false;
                        }
                    }
                }
            }

            // クラス
            if (ctlDataClass.Enabled)
            {
                string fullName = null;
                if (ctlDataClass.SelectedValue is ClassDefinition)
                {
                    fullName = ((ClassDefinition)ctlDataClass.SelectedValue).FullName;
                }
                else if (ctlDataClass.SelectedValue is RubyClassDefinition)
                {
                    fullName = ((RubyClassDefinition)ctlDataClass.SelectedValue).FullName;
                }

                result = validator.ValidateDataClass(fullName);
                if (result != null)
                {
                    ActiveControl = ctlDataClass;
                    InvokeMessage(result);

                    return false;
                }
            }

            // エディタ
            result = validator.ValidateEditorType((string)ctlEditorType.SelectedValue);
            if (result != null)
            {
                ActiveControl = ctlEditorType;
                InvokeMessage(result);

                return false;
            }

            return true;
        }