示例#1
0
        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);
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#7
0
        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);
            }
        }
示例#8
0
        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();
        }
示例#9
0
        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);
        }