Exemplo n.º 1
0
        public override void Execute()
        {
            // show export dialog
            var dia = new ExportConfigDialog(viewModel);

            if (models.Window.ShowDialog(dia) != true)
            {
                return;
            }

            Debug.Assert(viewModel.IsValid);

            if (path.Filename == null) // set proposed filename from equations
            {
                path.InitFromEquations(models);
            }

            // make sure that the directory exists
            path.CreateDirectory();

            var sfd = new SaveFileDialog
            {
                Filter           = "ICFG (*.icfg)|*.icfg",
                InitialDirectory = path.Directory,
                FileName         = path.Filename
            };

            if (sfd.ShowDialog(models.Window.TopmostWindow) != true)
            {
                return;
            }

            try
            {
                var cfg = ViewerConfig.LoadFromModels(models, viewModel.UsedComponents);
                if (cfg.Images != null)
                {
                    cfg.Images.ImportMode = viewModel.ImageImportMode;
                }
                if (cfg.Filter != null)
                {
                    cfg.Filter.ImportMode = viewModel.FilterImportMode;
                }

                path.UpdateFromFilename(sfd.FileName);

                cfg.WriteToFile(path.FullPath);
            }
            catch (Exception e)
            {
                models.Window.ShowErrorDialog(e, "Could not save config");
            }
        }