private void OnOpenFileDialogMessage(OpenFileDialogMessage message) { CommonOpenFileDialog cofd = new CommonOpenFileDialog { Title = message.Title, EnsurePathExists = true, Multiselect = message.MultiSelect }; foreach (Tuple <string, string> filter in message.Filters) { cofd.Filters.Add(new CommonFileDialogFilter(filter.Item1, filter.Item2)); } CommonFileDialogResult result = cofd.ShowDialog(); cofd.Dispose(); if (result == CommonFileDialogResult.Ok) { if (message.MultiSelect) { message.Callback?.Invoke(true, cofd.FileNames); } else { message.Callback?.Invoke(true, new List <string> { cofd.FileName }); } } else { message.Callback?.Invoke(false, null); } }
public static string GetOpenRhinoFileName(string name) { var openMessage = new OpenFileDialogMessage { DefaultExtension = ".3dm", Filter = "3DM files (*.3dm)|*.3dm", FileName = string.IsNullOrEmpty(name) ? null : System.IO.Path.GetFileNameWithoutExtension(name) }; Messenger.Instance.Notify(openMessage); return(openMessage.FileName); }
public static string GetOpenTextureFileName(string name) { var openMessage = new OpenFileDialogMessage { DefaultExtension = ".png", Filter = "Textures files (*.png, *.bmp, *.jpg, *.gif)|*.png;*.bmp;*.jpg;*.gif|PNG files (*.png)|*.png|BMP files (*.bmp)|*.bmp|JPG files (*.jpg)|*.jpg|GIF files (*.gif)|*.gif", FileName = string.IsNullOrEmpty(name) ? null : System.IO.Path.GetFileNameWithoutExtension(name) }; Messenger.Instance.Notify(openMessage); return(openMessage.FileName); }
private void ReferMovieCommand_Execute() { var message = new OpenFileDialogMessage(this, TranslateExtension.Language["MovieFilter"]) { FileName = MoviePath }; Messenger.Default.Send(message); if (message.Result) { MoviePath = message.FileName; } }
private void FlashHexCommand_Execute() { var message = new OpenFileDialogMessage("Open a HEX file", false, ".hex", "Hex Files|*.hex", async(filenames) => { var targetFile = Path.Combine(App.TempDirectory, Path.GetFileName(filenames[0])); if (!TryToDeleteFile(targetFile)) { AddLogEntry("Failed to delete existing file", true); } File.Copy(filenames[0], targetFile); await FlashHexFileAsync(targetFile); }); MessengerInstance.Send(message); }
private void ImportHexArchiveCommand_Execute() { var message = new OpenFileDialogMessage("Import Ardobuy Files", true, ".arduboy", "Ardobuy Files|*.arduboy", async(filenames) => { LogItems = new ObservableCollection <LogEntry>(); await Task.Run(async() => { IsBusy = true; foreach (var filePath in filenames) { var filename = Path.GetFileName(filePath); AddLogEntry($"Checking {filename}"); var targetFilename = Path.Combine(App.HexArchiveDirectory, filename); if (File.Exists(targetFilename)) { AddLogEntry($"{filename} already exists, trying to replace"); if (!TryToDeleteFile(targetFilename)) { AddLogEntry($"{filename} already exists, unable to delete"); continue; } } var archive = HexArchive.FromFile(filePath); if (archive.HasValue) { AddLogEntry($"Found {archive.Value.Info.Title}. Importing..."); File.Copy(filePath, targetFilename); } else { AddLogEntry($"{filename} is not a valid Arduboy File"); } } AddLogEntry($"Reloading files"); ListAvailableHexArchives(); AddLogEntry($"Import complete"); await Task.Delay(5000); IsBusy = false; }); }); MessengerInstance.Send(message); }
private void ShowOpenFileDialog(OpenFileDialogMessage m) { var dialog = new OpenFileDialog() { Title = m.Title, Filter = m.Filter, DefaultExt = m.DefaultExt, Multiselect = m.MultiSelect, InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) }; var owner = Window.GetWindow(AssociatedObject); if (dialog.ShowDialog(owner).Value&& dialog.FileNames.Length > 0) { m.Callback?.Invoke(dialog.FileNames); } }
private void OpenFileDialogMessage_Received(OpenFileDialogMessage message) { if (message.Sender != DataContext) { return; } var dialog = new System.Windows.Forms.OpenFileDialog { Filter = message.Filter, FileName = message.FileName, RestoreDirectory = true }; message.Result = dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK; if (message.Result) { message.FileName = dialog.FileName; } dialog.Dispose(); }
private void OnOpenFileDialogMessage(OpenFileDialogMessage message) { Action action = () => { var dialog = new OpenFileDialog(); dialog.CheckFileExists = true; dialog.AddExtension = true; dialog.DefaultExt = message.DefaultExtension; dialog.Filter = message.Filter; dialog.FileName = message.FileName; if (dialog.ShowDialog(this) == true) { message.FileName = dialog.FileName; } else { message.FileName = null; } }; this.Dispatcher.Invoke(action); }