Пример #1
0
        /// <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);
                    }
                }
            }
        }
Пример #2
0
        /// <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);
                }
            }
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
 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.");
         }
     }
 }
Пример #5
0
        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);
        }
Пример #6
0
        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);
            };
        }
Пример #7
0
		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>();
		}