WatermarkTemplateListFileContentViewModel.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. using PDF_Office.Properties;
  2. using PDFSettings;
  3. using Prism.Commands;
  4. using Prism.Mvvm;
  5. using Prism.Regions;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Collections.ObjectModel;
  9. using System.Linq;
  10. using System.Windows;
  11. namespace PDF_Office.ViewModels.EditTools.Watermark
  12. {
  13. public class WatermarkTemplateListFileContentViewModel : BindableBase, INavigationAware
  14. {
  15. public ObservableCollection<WatermarkItem> watermarkModFileCollection = new ObservableCollection<WatermarkItem>();
  16. public ObservableCollection<WatermarkItem> WatermarkModFileCollection
  17. {
  18. get { return watermarkModFileCollection; }
  19. set
  20. {
  21. watermarkModFileCollection = value;
  22. RaisePropertyChanged();
  23. }
  24. }
  25. private Visibility _createTemplateVisible;
  26. public Visibility CreateTemplateVisible
  27. {
  28. get { return _createTemplateVisible; }
  29. set { SetProperty(ref _createTemplateVisible, value); }
  30. }
  31. public DelegateCommand AddTemplateCommand { get; set; }
  32. public DelegateCommand<object> DeleteTemplateItemCommand { get; set; }
  33. public WatermarkTemplateListFileContentViewModel()
  34. {
  35. AddTemplateCommand = new DelegateCommand(AddTemplate);
  36. DeleteTemplateItemCommand = new DelegateCommand<object>(DeleteTemplateItem);
  37. }
  38. private void CheckTemplateListIsEmpty(List<WatermarkItem> watermarkTemplateList)
  39. {
  40. if (watermarkTemplateList.Count() == 0)
  41. {
  42. CreateTemplateVisible = Visibility.Visible;
  43. }
  44. else
  45. {
  46. CreateTemplateVisible = Visibility.Collapsed;
  47. }
  48. }
  49. private void GetWatermarkSource()
  50. {
  51. List<WatermarkItem> watermarkModTextTemplateList = new List<WatermarkItem>();
  52. for (int temp = 0; temp < Settings.Default.WatermarkTemplateList.Count; temp++)
  53. {
  54. if (Settings.Default.WatermarkTemplateList[temp].type == ComPDFKit.PDFWatermark.C_Watermark_Type.WATERMARK_TYPE_IMG)
  55. {
  56. watermarkModTextTemplateList.Add(Settings.Default.WatermarkTemplateList[temp]);
  57. }
  58. }
  59. WatermarkModFileCollection = new ObservableCollection<WatermarkItem>(watermarkModTextTemplateList);
  60. CheckTemplateListIsEmpty(watermarkModTextTemplateList);
  61. }
  62. private void InitWatermarkTemplateList()
  63. {
  64. if (Settings.Default.WatermarkTemplateList == null)
  65. {
  66. Settings.Default.WatermarkTemplateList = new WatermarkTemplateList();
  67. }
  68. GetWatermarkSource();
  69. }
  70. private void UpdateWatermarkSources()
  71. {
  72. List<WatermarkItem> watermarkModTextTemplateList = new List<WatermarkItem>();
  73. for (int temp = 0; temp < Settings.Default.WatermarkTemplateList.Count; temp++)
  74. {
  75. if (Settings.Default.WatermarkTemplateList[temp].type == ComPDFKit.PDFWatermark.C_Watermark_Type.WATERMARK_TYPE_IMG)
  76. {
  77. watermarkModTextTemplateList.Add(Settings.Default.WatermarkTemplateList[temp]);
  78. }
  79. }
  80. WatermarkModFileCollection = new ObservableCollection<WatermarkItem>(watermarkModTextTemplateList);
  81. CheckTemplateListIsEmpty(watermarkModTextTemplateList);
  82. }
  83. public void AddTemplate()
  84. {
  85. var watermarkItem = new WatermarkItem();
  86. watermarkItem.pageRange = "0";
  87. watermarkItem.type = ComPDFKit.PDFWatermark.C_Watermark_Type.WATERMARK_TYPE_IMG;
  88. watermarkItem.templateName += Settings.Default.WatermarkIndex.ToString();
  89. Settings.Default.WatermarkTemplateList.Add(watermarkItem);
  90. Settings.Default.Save();
  91. UpdateWatermarkSources();
  92. }
  93. public void DeleteTemplateItem(object e)
  94. {
  95. var btn = e as System.Windows.Controls.Button;
  96. if (btn == null)
  97. {
  98. return;
  99. }
  100. var template = btn.DataContext as WatermarkItem;
  101. if (template == null)
  102. {
  103. return;
  104. }
  105. Settings.Default.AppProperties.NeedToDeletePath.Add(template.previeImagePath);
  106. Settings.Default.AppProperties.NeedToDeletePath.Add(template.imagepath);
  107. Settings.Default.WatermarkTemplateList.Remove(template);
  108. Settings.Default.Save();
  109. WatermarkModFileCollection.Remove(template);
  110. UpdateWatermarkSources();
  111. }
  112. public bool IsNavigationTarget(NavigationContext navigationContext)
  113. {
  114. return true;
  115. }
  116. public void OnNavigatedFrom(NavigationContext navigationContext)
  117. {
  118. }
  119. public void OnNavigatedTo(NavigationContext navigationContext)
  120. {
  121. }
  122. }
  123. }