/// <summary> /// Deserializes the saved print configuration settings. /// </summary> public void LoadConfiguration(string configData) { if (!string.IsNullOrEmpty(configData)) { using (MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(configData))) { DataContractSerializer xmlSerializer = new DataContractSerializer(typeof(PrintToolViewModel)); memoryStream.Position = 0; savedConfiguration = (PrintToolViewModel)xmlSerializer.ReadObject(memoryStream); memoryStream.Close(); } } }
/// <summary> /// Shows the PrintToolView when the icon on the toolbar is clicked. /// </summary> public void Execute(object parameter) { ToolExecuting = true; var toolViewModel = printToolView.DataContext as PrintToolViewModel; if (toolViewModel == null && savedConfiguration != null) { toolViewModel = new PrintToolViewModel(savedConfiguration); toolViewModel.Map = MapApplication.Current.Map; printToolView.DataContext = toolViewModel; } if (toolViewModel != null) { toolViewModel.Activate(); } // If there is at least one visible setting, print tool view is shown. // Otherwise, print command is executed without the intermediate dialog. if (toolViewModel.HasVisibleSetting) { MapApplication.Current.ShowWindow(Resources.Strings.PrintToolTitle, printToolView, false, null, (s, e) => { ToolExecuting = false; }, WindowType.Floating); } else { ToolExecuting = toolViewModel.IsPrinting; toolViewModel.PropertyChanged += (a, b) => { if (b.PropertyName == "IsPrinting") { ToolExecuting = toolViewModel.IsPrinting; } }; if (toolViewModel.Print.CanExecute(null)) { toolViewModel.Print.Execute(null); } } }
/// <summary> /// Called when configuration wizard is completed. /// Updates last saved configuration. /// </summary> public void OnCompleted() { var configViewModel = printToolConfigView.DataContext as PrintToolViewModel; if (configViewModel != null) { if (savedConfiguration == null) { savedConfiguration = new PrintToolViewModel(configViewModel); } else { savedConfiguration.ApplyChanges(configViewModel); } // Tool view on builder must immediately reflect latest configuration // so changes are applied to this instance as well. var toolViewModel = printToolView.DataContext as PrintToolViewModel; if (toolViewModel != null) { toolViewModel.ApplyChanges(savedConfiguration); } } }