/// <summary> /// Shows the OpenWith dialog for the specified files. /// </summary> public static void OpenFilesWith(string[] fileNames) { if (fileNames.Length == 0) { return; } List <DisplayBindingDescriptor> codons = DisplayBindingService.GetCodonsPerFileName(fileNames[0]).ToList(); for (int i = 1; i < fileNames.Length; i++) { var codonsForThisFile = DisplayBindingService.GetCodonsPerFileName(fileNames[i]); codons.RemoveAll(c => !codonsForThisFile.Contains(c)); } if (codons.Count == 0) { return; } int defaultCodonIndex = codons.IndexOf(DisplayBindingService.GetDefaultCodonPerFileName(fileNames[0])); if (defaultCodonIndex < 0) { defaultCodonIndex = 0; } using (OpenWithDialog dlg = new OpenWithDialog(codons, defaultCodonIndex, Path.GetExtension(fileNames[0]))) { if (dlg.ShowDialog(WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { foreach (string fileName in fileNames) { FileUtility.ObservedLoad(new FileService.LoadFileWrapper(dlg.SelectedBinding.Binding, true).Invoke, fileName); } } } }
/// <summary> /// Shows the OpenWith dialog for the specified file. /// </summary> static void OpenWith(string fileName) { var codons = DisplayBindingService.GetCodonsPerFileName(fileName); int defaultCodonIndex = codons.IndexOf(DisplayBindingService.GetDefaultCodonPerFileName(fileName)); using (OpenWithDialog dlg = new OpenWithDialog(codons, defaultCodonIndex, Path.GetExtension(fileName))) { if (dlg.ShowDialog(WorkbenchSingleton.MainForm) == DialogResult.OK) { FileUtility.ObservedLoad(new FileService.LoadFileWrapper(dlg.SelectedBinding.Binding, true).Invoke, fileName); } } }
/// <summary> /// Prompts the user to select which handler to open a file object with. /// </summary> /// <param name="args">The file arguments.</param> public static bool OpenWithPrompt(OpenFileArgs args) { var defaultHandler = GetDefaultHandler(args); if (defaultHandler == null) { return(false); } var allHandlers = AllPlugins .Where(p => p.CanOpenFile(args)); OpenWithDialog.HandleFile(allHandlers, args); return(true); }
private void CmdOpenItemWith_Executed(object sender, EventArgs e) { if (PipelineController.Instance.SelectedItem != null) { try { var filepath = PipelineController.Instance.GetFullPath(PipelineController.Instance.SelectedItem.OriginalPath); var dialog = new OpenWithDialog(filepath); dialog.ShowDialog(this); } catch { ShowError("Error", "An error occured while trying to launch an open with dialog."); } } }
public IFileHandler SelectFileHandler(IEnumerable <IFileHandler> fileHandlers, FilePath filePath) { var handlersArray = fileHandlers.ToArray(); if (handlersArray.Length == 1) { return(handlersArray[0]); } if (handlersArray.Length > 1) { using (var openWithDlg = new OpenWithDialog(handlersArray.Cast <LiteExtension>())) { if (openWithDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) { return(openWithDlg.SelectedExtension as IFileHandler); } } } return(null); }
public OpenWithDialogSection() { var layout = new DynamicLayout(); layout.DefaultPadding = new Padding(10); layout.DefaultSpacing = new Size(4, 4); layout.BeginVertical(); layout.BeginHorizontal(); layout.Add(new Label { Text = "File to open: ", VerticalAlignment = VerticalAlignment.Center }); var filepicker1 = new FilePicker { FileAction = FileAction.OpenFile }; layout.Add(filepicker1, true, false); layout.EndHorizontal(); layout.BeginHorizontal(); layout.Add(null); var button1 = new Button(); button1.Text = "Show Dialog"; layout.Add(button1, true, false); layout.EndHorizontal(); layout.Add(null, false, true); layout.EndVertical(); Content = layout; button1.Click += delegate { var dialog = new OpenWithDialog(filepicker1.FilePath); dialog.ShowDialog(this); }; }
public IEnumerable<IViewContent> ShowOpenWithDialog(IEnumerable<FileName> fileNames, bool switchToOpenedView = true) { var fileNamesList = fileNames.ToList(); if (fileNamesList.Count == 0) return Enumerable.Empty<IViewContent>(); var displayBindingService = SD.DisplayBindingService; List<DisplayBindingDescriptor> codons = displayBindingService.GetCodonsPerFileName(fileNamesList[0]).ToList(); for (int i = 1; i < fileNamesList.Count; i++) { var codonsForThisFile = displayBindingService.GetCodonsPerFileName(fileNamesList[i]); codons.RemoveAll(c => !codonsForThisFile.Contains(c)); } if (codons.Count == 0) return Enumerable.Empty<IViewContent>(); int defaultCodonIndex = codons.IndexOf(displayBindingService.GetDefaultCodonPerFileName(fileNamesList[0])); if (defaultCodonIndex < 0) defaultCodonIndex = 0; using (OpenWithDialog dlg = new OpenWithDialog(codons, defaultCodonIndex, Path.GetExtension(fileNamesList[0]))) { if (dlg.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { var result = new List<IViewContent>(); foreach (var fileName in fileNamesList) { IViewContent vc = OpenFileWith(fileName, dlg.SelectedBinding.Binding, switchToOpenedView); if (vc != null) result.Add(vc); } return result; } } return Enumerable.Empty<IViewContent>(); }