BackgroundTemplateListFileContentViewModel.cs 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. using PDF_Office.EventAggregators;
  2. using PDF_Office.Model.EditTools.Background;
  3. using PDF_Office.Model.EditTools.Watermark;
  4. using PDF_Office.Properties;
  5. using PDFSettings;
  6. using Prism.Commands;
  7. using Prism.Events;
  8. using Prism.Mvvm;
  9. using Prism.Regions;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Collections.ObjectModel;
  13. using System.Linq;
  14. using System.Text;
  15. using System.Threading.Tasks;
  16. using System.Windows;
  17. using System.Windows.Controls;
  18. namespace PDF_Office.ViewModels.EditTools.Background
  19. {
  20. public class BackgroundTemplateListFileContentViewModel : BindableBase,INavigationAware
  21. {
  22. private readonly IEventAggregator eventAggregator;
  23. public BackgroundInfo BackgroundInfo;
  24. public ObservableCollection<BackgroundItem> backgroundModFileCollection = new ObservableCollection<BackgroundItem>();
  25. public ObservableCollection<BackgroundItem> BackgroundModFileCollection
  26. {
  27. get { return backgroundModFileCollection; }
  28. set
  29. {
  30. backgroundModFileCollection = value;
  31. RaisePropertyChanged();
  32. }
  33. }
  34. private Visibility _createTemplateVisible;
  35. public Visibility CreateTemplateVisible
  36. {
  37. get { return _createTemplateVisible; }
  38. set { SetProperty(ref _createTemplateVisible, value); }
  39. }
  40. public DelegateCommand AddTemplateCommand { get; set; }
  41. public DelegateCommand<object> DeleteTemplateItemCommand { get; set; }
  42. public DelegateCommand DeleteAllTemplateItemCommand{ get; set; }
  43. public DelegateCommand<object> SelectTemplateItemCommand { get; set; }
  44. BackgroundTemplateListFileContentViewModel(IEventAggregator eventAggregator)
  45. {
  46. this.eventAggregator = eventAggregator;
  47. AddTemplateCommand = new DelegateCommand(AddTemplate);
  48. DeleteTemplateItemCommand = new DelegateCommand<object>(DeleteTemplateItem);
  49. DeleteAllTemplateItemCommand = new DelegateCommand(DeleteAllTemplateItem);
  50. SelectTemplateItemCommand = new DelegateCommand<object>(SelectTemplateItem);
  51. }
  52. private void CheckTemplateListIsEmpty(List<BackgroundItem> backgroundTemplateList)
  53. {
  54. if (backgroundTemplateList.Count() == 0)
  55. {
  56. CreateTemplateVisible = Visibility.Visible;
  57. }
  58. else
  59. {
  60. CreateTemplateVisible = Visibility.Collapsed;
  61. }
  62. }
  63. private void GetBackgroundSource()
  64. {
  65. List<BackgroundItem> backgroundModFileTemplateList = new List<BackgroundItem>();
  66. for (int temp = 0; temp < Settings.Default.BackgroundTemplateList.Count; temp++)
  67. {
  68. if (Settings.Default.BackgroundTemplateList[temp].type == ComPDFKit.PDFDocument.C_Background_Type.BG_TYPE_IMAGE)
  69. {
  70. backgroundModFileTemplateList.Add(Settings.Default.BackgroundTemplateList[temp]);
  71. }
  72. }
  73. BackgroundModFileCollection = new ObservableCollection<BackgroundItem>(backgroundModFileTemplateList);
  74. CheckTemplateListIsEmpty(backgroundModFileTemplateList);
  75. }
  76. private void InitBackgroundTemplateList()
  77. {
  78. if (Settings.Default.BackgroundTemplateList == null)
  79. {
  80. Settings.Default.BackgroundTemplateList = new BackgroundTemplateList();
  81. }
  82. GetBackgroundSource();
  83. }
  84. public void AddTemplate()
  85. {
  86. this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusCreate);
  87. }
  88. public void DeleteTemplateItem(object e)
  89. {
  90. var control = e as Control;
  91. if (control == null)
  92. {
  93. return;
  94. }
  95. var template = control.DataContext as BackgroundItem;
  96. if (template == null)
  97. {
  98. return;
  99. }
  100. Settings.Default.AppProperties.NeedToDeletePath.Add(template.previeImagePath);
  101. Settings.Default.AppProperties.NeedToDeletePath.Add(template.imagepath);
  102. Settings.Default.BackgroundTemplateList.Remove(template);
  103. Settings.Default.Save();
  104. BackgroundModFileCollection.Remove(template);
  105. GetBackgroundSource();
  106. }
  107. public void DeleteAllTemplateItem()
  108. {
  109. while (Settings.Default.BackgroundTemplateList.Count != 0)
  110. {
  111. int temp = 0;
  112. var template = Settings.Default.BackgroundTemplateList[temp];
  113. Settings.Default.AppProperties.NeedToDeletePath.Add(template.previeImagePath);
  114. Settings.Default.AppProperties.NeedToDeletePath.Add(template.imagepath);
  115. Settings.Default.BackgroundTemplateList.Remove(template);
  116. Settings.Default.Save();
  117. BackgroundModFileCollection.Remove(template);
  118. }
  119. GetBackgroundSource();
  120. }
  121. public void ConvertItemToInfo(BackgroundItem backgroundItem, ref BackgroundInfo backgroundInfo)
  122. {
  123. }
  124. public void SendTemplateItemToDocument(BackgroundItem BackgroundItem)
  125. {
  126. ConvertItemToInfo(BackgroundItem, ref BackgroundInfo);
  127. eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
  128. }
  129. public void SelectTemplateItem(object e)
  130. {
  131. var listBox = e as ListBox;
  132. BackgroundItem BackgroundItem = listBox.SelectedItem as BackgroundItem;
  133. SendTemplateItemToDocument(BackgroundItem);
  134. }
  135. public bool IsNavigationTarget(NavigationContext navigationContext)
  136. {
  137. return true;
  138. }
  139. public void OnNavigatedFrom(NavigationContext navigationContext)
  140. {
  141. }
  142. public void OnNavigatedTo(NavigationContext navigationContext)
  143. {
  144. InitBackgroundTemplateList();
  145. }
  146. }
  147. }