/// <summary>表示するコモンダイアログを生成します。</summary>
        /// <param name="settings">設定情報を表すIDialogSettings。</param>
        /// <returns>生成したコモンダイアログを表すCommonFileDialog。</returns>
        private FolderBrowserDialog createDialog(CommonDialogSettingBase settings)
        {
            if (settings == null)
            {
                return(null);
            }

            var dialog = new FolderBrowserDialog();

            return(dialog);
        }
Exemple #2
0
        /// <summary>
        /// コモンダイアログを表示します。
        /// </summary>
        /// <param name="settings">表示するコモンダイアログを表すCommonDialogSettingBase。</param>
        /// <returns>コモンダイアログの操作結果を表すbool。</returns>
        public bool ShowDialog(CommonDialogSettingBase settings)
        {
            var service = new InnerServiceFactory().CreateInnerService(settings);

            if (service == null)
            {
                return(false);
            }

            return(service.ShowDialog(settings));
        }
        /// <summary>
        /// CommonDialogService内で使用するサービスを生成します。
        /// </summary>
        /// <param name="settings">コモンダイアログの設定を表すCommonDialogSettingBase。</param>
        /// <returns>CommonDialogService内で使用するサービスを表すICommonDialogService。</returns>
        public ICommonDialogService CreateInnerService(CommonDialogSettingBase settings)
        {
            switch (settings)
            {
            case OpenFileDialogSettings o:
            case SaveFileDialogSettings s:
                return(new FileDialogService());

            case WinApiFolderPickerDialogSettings p:
                return(new WinApiFolderPickerDialogService());
            }

            return(null);
        }
Exemple #4
0
        public bool ShowDialog(CommonDialogSettingBase settings)
        {
            var ret            = CommonFileDialogResult.None;
            var dialogSettings = settings as WinApiFolderPickerDialogSettings;

            using (var dialog = this.createDialog(dialogSettings))
            {
                ret = dialog.ShowDialog();

                if (ret == CommonFileDialogResult.Ok)
                {
                    this.setReturnValues(dialog, dialogSettings);
                }
            }

            return(ret == CommonFileDialogResult.Ok);
        }
        public bool ShowDialog(CommonDialogSettingBase settings)
        {
            var dialog = this.createDialog(settings);

            if (dialog == null)
            {
                return(false);
            }

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #6
0
        /// <summary>戻り値を設定します。</summary>
        /// <param name="dialog">表示したダイアログを表すFileDialog。</param>
        /// <param name="settings">設定情報を表すIDialogSettings。</param>
        private void setReturnValues(FileDialog dialog, CommonDialogSettingBase settings)
        {
            switch (settings)
            {
            case OpenFileDialogSettings o:
                var openDialog = dialog as OpenFileDialog;
                o.FileName  = openDialog.FileName;
                o.FileNames = openDialog.FileNames.ToList();
                break;

            case SaveFileDialogSettings s:
                var saveDialog = dialog as SaveFileDialog;
                s.FileName = saveDialog.FileName;
                break;

            default:
                break;
            }
        }
Exemple #7
0
        /// <summary>
        /// コモンダイアログを表示します。
        /// </summary>
        /// <param name="settings">表示するコモンダイアログを表すCommonDialogSettingBase。</param>
        /// <returns>コモンダイアログの操作結果を表すbool。</returns>
        public bool ShowDialog(CommonDialogSettingBase settings)
        {
            var dialog = this.createDialog(settings);

            if (dialog == null)
            {
                return(false);
            }

            var ret = dialog.ShowDialog();

            if (ret.HasValue)
            {
                this.setReturnValues(dialog, settings);
                return(ret.Value);
            }
            else
            {
                return(false);
            }
        }
Exemple #8
0
        private FileDialog createDialog(CommonDialogSettingBase settings)
        {
            if (settings == null)
            {
                return(null);
            }

            FileDialog dialog = null;

            switch (settings)
            {
            case OpenFileDialogSettings o:
                dialog = new OpenFileDialog();
                break;

            case SaveFileDialogSettings s:
                dialog = new SaveFileDialog();
                break;

            default:
                return(null);
            }

            var saveSettings = settings as SaveFileDialogSettings;

            dialog.Filter           = saveSettings.Filter;
            dialog.FilterIndex      = saveSettings.FilterIndex;
            dialog.InitialDirectory = saveSettings.InitialDirectory;
            dialog.Title            = saveSettings.Title;

            if (settings is OpenFileDialogSettings)
            {
                ((OpenFileDialog)dialog).Multiselect = ((OpenFileDialogSettings)settings).Multiselect;
            }

            return(dialog);
        }