WatermarkCreateBaseContentViewModel.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. using ComPDFKitViewer.PdfViewer;
  2. using PDF_Office.EventAggregators;
  3. using PDF_Office.Model;
  4. using Prism.Commands;
  5. using Prism.Events;
  6. using Prism.Mvvm;
  7. using Prism.Regions;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Windows.Controls;
  12. namespace PDF_Office.ViewModels.EditTools.Watermark
  13. {
  14. public class WatermarkCreateBaseContentViewModel : BindableBase, INavigationAware
  15. {
  16. IEventAggregator eventAggregator;
  17. IRegionManager watermarkCreateRegion;
  18. private CPDFViewer PDFViewer;
  19. public EnumTextOrFile CurrentTemplateListMod;
  20. private string watermarkCreateRegionName;
  21. public string WatermarkCreateRegionName
  22. {
  23. get => watermarkCreateRegionName;
  24. set => SetProperty(ref watermarkCreateRegionName, value);
  25. }
  26. private string _currentCreateName;
  27. public string CurrentCreateName
  28. {
  29. get => _currentCreateName;
  30. set => _currentCreateName = value;
  31. }
  32. private string _currentCreateModName;
  33. public string CurrentCreateModName
  34. {
  35. get => _currentCreateModName;
  36. set => _currentCreateModName = value;
  37. }
  38. private System.Windows.Visibility watermarkCreateVisible;
  39. public System.Windows.Visibility WatermarkCreateVisible
  40. {
  41. get => watermarkCreateVisible;
  42. set => SetProperty(ref watermarkCreateVisible, value);
  43. }
  44. public DelegateCommand<object> ChangeCreateModCommand { get; set; }
  45. public DelegateCommand EnterTemplateListCommand { get; set; }
  46. public DelegateCommand SaveToTemplateListCommand { get; set; }
  47. public WatermarkCreateBaseContentViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
  48. {
  49. this.eventAggregator = eventAggregator;
  50. this.watermarkCreateRegion = regionManager;
  51. WatermarkCreateRegionName = Guid.NewGuid().ToString();
  52. ChangeCreateModCommand = new DelegateCommand<object>(ChangeCreateMod);
  53. EnterTemplateListCommand = new DelegateCommand(EnterTemplateList);
  54. SaveToTemplateListCommand = new DelegateCommand(SaveToTemplateList);
  55. }
  56. public void SaveToTemplateList()
  57. {
  58. if (CurrentCreateModName == "WatermarkCreateTextContent")
  59. {
  60. this.eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Publish(EnumTextOrFile.StatusText);
  61. }
  62. if (CurrentCreateModName == "WatermarkCreateFileContent")
  63. {
  64. this.eventAggregator.GetEvent<SaveWatermarkTemplateEvent>().Publish(EnumTextOrFile.StatusFile);
  65. }
  66. }
  67. public void EnterTemplateList()
  68. {
  69. this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
  70. }
  71. public void EnterSelectedCreateMod(string currentCreateName)
  72. {
  73. NavigationParameters param = new NavigationParameters();
  74. param.Add(ParameterNames.PDFViewer, PDFViewer);
  75. watermarkCreateRegion.RequestNavigate(WatermarkCreateRegionName, currentCreateName, param);
  76. watermarkCreateVisible = System.Windows.Visibility.Visible;
  77. }
  78. public void ChangeCreateMod(object e)
  79. {
  80. var args = e as Button;
  81. if (args != null)
  82. {
  83. CurrentCreateName = args.Name;
  84. EnterSelectedCreateMod(CurrentCreateName);
  85. eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(CurrentCreateName);
  86. }
  87. }
  88. public bool IsNavigationTarget(NavigationContext navigationContext)
  89. {
  90. return true;
  91. }
  92. public void OnNavigatedFrom(NavigationContext navigationContext)
  93. {
  94. }
  95. public void OnNavigatedTo(NavigationContext navigationContext)
  96. {
  97. navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
  98. navigationContext.Parameters.TryGetValue<EnumTextOrFile>("CurrentTemplateListModName", out CurrentTemplateListMod);
  99. if (CurrentTemplateListMod == EnumTextOrFile.StatusText)
  100. {
  101. CurrentCreateModName = "WatermarkCreateTextContent";
  102. }
  103. else
  104. {
  105. CurrentCreateModName = "WatermarkCreateFileContent";
  106. }
  107. EnterSelectedCreateMod(CurrentCreateModName);
  108. eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(CurrentCreateModName);
  109. }
  110. }
  111. }