/// <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); }
/// <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); }
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); } }
/// <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; } }
/// <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); } }
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); }