BackgroundTemplateListFileContentViewModel.cs 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  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 = new 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 <object> EditTemplateItemCommand { get; set; }
  43. public DelegateCommand DeleteAllTemplateItemCommand{ get; set; }
  44. public DelegateCommand<object> SelectTemplateItemCommand { get; set; }
  45. BackgroundTemplateListFileContentViewModel(IEventAggregator eventAggregator)
  46. {
  47. this.eventAggregator = eventAggregator;
  48. AddTemplateCommand = new DelegateCommand(AddTemplate);
  49. EditTemplateItemCommand = new DelegateCommand<object>(EditTemplateItem);
  50. DeleteTemplateItemCommand = new DelegateCommand<object>(DeleteTemplateItem);
  51. DeleteAllTemplateItemCommand = new DelegateCommand(DeleteAllTemplateItem);
  52. SelectTemplateItemCommand = new DelegateCommand<object>(SelectTemplateItem);
  53. }
  54. private void CheckTemplateListIsEmpty(List<BackgroundItem> backgroundTemplateList)
  55. {
  56. if (backgroundTemplateList.Count() == 0)
  57. {
  58. CreateTemplateVisible = Visibility.Visible;
  59. }
  60. else
  61. {
  62. CreateTemplateVisible = Visibility.Collapsed;
  63. }
  64. }
  65. private void GetBackgroundSource()
  66. {
  67. List<BackgroundItem> backgroundModFileTemplateList = new List<BackgroundItem>();
  68. for (int temp = 0; temp < Settings.Default.BackgroundTemplateList.Count; temp++)
  69. {
  70. if (Settings.Default.BackgroundTemplateList[temp].type == ComPDFKit.PDFDocument.C_Background_Type.BG_TYPE_IMAGE)
  71. {
  72. backgroundModFileTemplateList.Add(Settings.Default.BackgroundTemplateList[temp]);
  73. }
  74. }
  75. BackgroundModFileCollection = new ObservableCollection<BackgroundItem>(backgroundModFileTemplateList);
  76. CheckTemplateListIsEmpty(backgroundModFileTemplateList);
  77. }
  78. private void InitBackgroundTemplateList()
  79. {
  80. if (Settings.Default.BackgroundTemplateList == null)
  81. {
  82. Settings.Default.BackgroundTemplateList = new BackgroundTemplateList();
  83. }
  84. GetBackgroundSource();
  85. }
  86. public void AddTemplate()
  87. {
  88. this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusCreate);
  89. }
  90. public void EditTemplateItem(object e)
  91. {
  92. var control = e as Control;
  93. if (control == null)
  94. {
  95. return;
  96. }
  97. var template = control.DataContext as BackgroundItem;
  98. if (template == null)
  99. {
  100. return;
  101. }
  102. ConvertItemToInfo(template, ref BackgroundInfo);
  103. this.eventAggregator.GetEvent<EditBackgroundTemplateItemEvent>().Publish(BackgroundInfo);
  104. }
  105. public void DeleteTemplateItem(object e)
  106. {
  107. var control = e as Control;
  108. if (control == null)
  109. {
  110. return;
  111. }
  112. var template = control.DataContext as BackgroundItem;
  113. if (template == null)
  114. {
  115. return;
  116. }
  117. Settings.Default.AppProperties.NeedToDeletePath.Add(template.previeImagePath);
  118. Settings.Default.AppProperties.NeedToDeletePath.Add(template.imagepath);
  119. Settings.Default.BackgroundTemplateList.Remove(template);
  120. Settings.Default.Save();
  121. BackgroundModFileCollection.Remove(template);
  122. GetBackgroundSource();
  123. }
  124. public void DeleteAllTemplateItem()
  125. {
  126. while (Settings.Default.BackgroundTemplateList.Count != 0)
  127. {
  128. int temp = 0;
  129. var template = Settings.Default.BackgroundTemplateList[temp];
  130. Settings.Default.AppProperties.NeedToDeletePath.Add(template.previeImagePath);
  131. Settings.Default.AppProperties.NeedToDeletePath.Add(template.imagepath);
  132. Settings.Default.BackgroundTemplateList.Remove(template);
  133. Settings.Default.Save();
  134. BackgroundModFileCollection.Remove(template);
  135. }
  136. GetBackgroundSource();
  137. }
  138. public void ConvertItemToInfo(BackgroundItem backgroundItem, ref BackgroundInfo backgroundInfo)
  139. {
  140. backgroundInfo.BackgroundType = backgroundItem.type ;
  141. backgroundInfo.ImageArray = backgroundItem.imageArray;
  142. backgroundInfo.ImageWidth = backgroundItem.imageWidth;
  143. backgroundInfo.ImageHeight = backgroundItem.imageHeight;
  144. backgroundInfo.Horizalign = backgroundItem.horizalign;
  145. backgroundInfo.Vertalign = backgroundItem.vertalign;
  146. backgroundInfo.VertOffset = backgroundItem.vertOffset;
  147. backgroundInfo.Horizalign = backgroundItem.horizalign;
  148. backgroundInfo.Opacity = backgroundItem.opacity;
  149. backgroundInfo.Rotation = backgroundItem.rotation;
  150. backgroundInfo.Scale = backgroundItem.scale;
  151. backgroundInfo.PageRange = backgroundItem.pageRange;
  152. // backgroundItem.pagRangeMode = backgroundInfo.PageRange;
  153. }
  154. public void SendTemplateItemToDocument(BackgroundItem BackgroundItem)
  155. {
  156. ConvertItemToInfo(BackgroundItem, ref BackgroundInfo);
  157. eventAggregator.GetEvent<SetBackgroundEvent>().Publish(BackgroundInfo);
  158. }
  159. public void SelectTemplateItem(object e)
  160. {
  161. var listBox = e as ListBox;
  162. BackgroundItem BackgroundItem = listBox.SelectedItem as BackgroundItem;
  163. SendTemplateItemToDocument(BackgroundItem);
  164. }
  165. public bool IsNavigationTarget(NavigationContext navigationContext)
  166. {
  167. return true;
  168. }
  169. public void OnNavigatedFrom(NavigationContext navigationContext)
  170. {
  171. }
  172. public void OnNavigatedTo(NavigationContext navigationContext)
  173. {
  174. InitBackgroundTemplateList();
  175. }
  176. }
  177. }