using ComPDFKitViewer.PdfViewer; using PDF_Office.EventAggregators; using PDF_Office.Model; using PDF_Office.Model.EditTools.Background; using PDF_Office.Views.EditTools.Background; using Prism.Commands; using Prism.Common; using Prism.Events; using Prism.Mvvm; using Prism.Regions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; namespace PDF_Office.ViewModels.EditTools.Background { public class BackgroundCreateBaseContentViewModel : BindableBase, INavigationAware { IEventAggregator eventAggregator; IRegionManager backgroundCreateRegion; private CPDFViewer PDFViewer; public BackgroundInfo BackgroundInfo; private string backgroundCreateRegionName; public string BackgroundCreateRegionName { get => backgroundCreateRegionName; set => SetProperty(ref backgroundCreateRegionName, value); } private string _currentCreateModName; public string CurrentCreateModName { get => _currentCreateModName; set => _currentCreateModName = value; } private System.Windows.Visibility backgroundCreateVisible; public System.Windows.Visibility BackgroundCreateVisible { get => backgroundCreateVisible; set => SetProperty(ref backgroundCreateVisible, value); } private bool isFirstEnter = true; public bool IsFirstEnter { get => isFirstEnter; set => isFirstEnter = value; } private Visibility _createBaseVisible; public Visibility CreateBaseVisible { get => _createBaseVisible; set=>SetProperty(ref _createBaseVisible, value); } private Visibility _editBaseVisible; public Visibility EditBaseVisible { get => _editBaseVisible; set => SetProperty(ref _editBaseVisible, value); } public EnumColorOrFile CurrentTemplateListMod; public DelegateCommand ChangeCreateModCommand { get; set; } public DelegateCommand EnterTemplateListCommand { get; set; } public DelegateCommand SaveToTemplateListCommand { get; set; } public DelegateCommand SaveToCurrentTemplateListCommand { get; set; } public BackgroundCreateBaseContentViewModel(IRegionManager regionManager, IEventAggregator eventAggregator) { this.eventAggregator = eventAggregator; this.backgroundCreateRegion = regionManager; BackgroundCreateRegionName = Guid.NewGuid().ToString(); ChangeCreateModCommand = new DelegateCommand(ChangeCreateMod); EnterTemplateListCommand = new DelegateCommand(EnterTemplateList); SaveToTemplateListCommand = new DelegateCommand(SaveToTemplateList); SaveToCurrentTemplateListCommand = new DelegateCommand(SaveToCurrentTemplateList); } public void SaveToTemplateList() { if (CurrentCreateModName == "BackgroundCreateColorContent") { this.eventAggregator.GetEvent().Publish(EnumColorOrFile.StatusColor); } if (CurrentCreateModName == "BackgroundCreateFileContent") { this.eventAggregator.GetEvent().Publish(EnumColorOrFile.StatusFile); } } public void SaveToCurrentTemplateList() { if (CurrentCreateModName == "BackgroundCreateColorContent") { eventAggregator.GetEvent().Publish(EnumColorOrFile.StatusColor); } if (CurrentCreateModName == "BackgroundCreateFileContent") { eventAggregator.GetEvent().Publish(EnumColorOrFile.StatusFile); } } public void EnterTemplateList() { this.eventAggregator.GetEvent().Publish(EnumTemplateListOrCreate.StatusTemplate); } public void EnterSelectedCreateMod(string currentCreateName) { NavigationParameters param = new NavigationParameters(); param.Add(ParameterNames.PDFViewer, PDFViewer); backgroundCreateRegion.RequestNavigate(BackgroundCreateRegionName, currentCreateName, param); backgroundCreateVisible = System.Windows.Visibility.Visible; } public void EditSelectedTemplateItem(string currentCreateName) { NavigationParameters param = new NavigationParameters(); param.Add(ParameterNames.PDFViewer, PDFViewer); param.Add("BackgroundInfo", BackgroundInfo); backgroundCreateRegion.RequestNavigate(BackgroundCreateRegionName, currentCreateName, param); backgroundCreateVisible = System.Windows.Visibility.Visible; } public void ChangeCreateMod(object e) { var args = e as Button; if (args != null) { CurrentCreateModName = args.Name; EnterSelectedCreateMod(CurrentCreateModName); eventAggregator.GetEvent().Publish(CurrentCreateModName); } } public bool IsNavigationTarget(NavigationContext navigationContext) { return true; } public void OnNavigatedFrom(NavigationContext navigationContext) { } public void OnNavigatedTo(NavigationContext navigationContext) { navigationContext.Parameters.TryGetValue(ParameterNames.PDFViewer, out PDFViewer); navigationContext.Parameters.TryGetValue("CurrentTemplateListModName", out CurrentTemplateListMod); if (CurrentTemplateListMod == EnumColorOrFile.StatusColor) { CurrentCreateModName = "BackgroundCreateColorContent"; } else { CurrentCreateModName = "BackgroundCreateFileContent"; } if(navigationContext.Parameters.TryGetValue("BackgroundInfo", out BackgroundInfo)) { EditSelectedTemplateItem(CurrentCreateModName); EditBaseVisible = Visibility.Visible; CreateBaseVisible= Visibility.Collapsed; } else { EnterSelectedCreateMod(CurrentCreateModName); CreateBaseVisible= Visibility.Visible; EditBaseVisible= Visibility.Collapsed; } eventAggregator.GetEvent().Publish(CurrentCreateModName); } } }