DocumentEditor.xaml.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. using System.ComponentModel;
  2. using System.IO;
  3. using System.Windows;
  4. using System.Windows.Controls;
  5. using InABox.Core;
  6. using InABox.Wpf;
  7. namespace InABox.DynamicGrid
  8. {
  9. /// <summary>
  10. /// Interaction logic for PDFViewer.xaml
  11. /// </summary>
  12. public partial class DocumentEditor : ThemableWindow
  13. {
  14. private IEntityDocument[] _documents;
  15. private readonly bool bReady;
  16. public DocumentEditor(params IEntityDocument[] documents)
  17. {
  18. //PrintAllowed = false;
  19. SaveAllowed = false;
  20. InitializeComponent();
  21. _documents = documents;
  22. foreach (var doc in documents)
  23. {
  24. var tab = new DynamicTabItem();
  25. tab.Header = Path.GetFileName(doc.DocumentLink.FileName);
  26. tab.Tag = doc;
  27. Documents.Items.Add(tab);
  28. }
  29. bReady = true;
  30. Documents.SelectedIndex = -1;
  31. }
  32. //public bool PrintAllowed { get; set; }
  33. public bool SaveAllowed { get; set; }
  34. public bool ButtonsVisible { get; set; }
  35. public string Watermark { get; set; }
  36. private bool bClosing = false;
  37. private void Documents_SelectionChanged(object sender, SelectionChangedEventArgs e)
  38. {
  39. if (!bReady || (!ButtonsVisible && bClosing))
  40. return;
  41. for (var i = 0; i < e.RemovedItems.Count; i++)
  42. {
  43. var item = e.RemovedItems[i] as DynamicTabItem;
  44. if (item != null)
  45. {
  46. var viewer = item.Content as IDocumentEditor;
  47. if (viewer != null)
  48. viewer.Document = null;
  49. item.Content = null;
  50. }
  51. }
  52. for (var i = 0; i < e.AddedItems.Count; i++)
  53. {
  54. var item = e.AddedItems[i] as DynamicTabItem;
  55. if (item != null)
  56. {
  57. var doc = item.Tag as IEntityDocument;
  58. if (doc != null)
  59. {
  60. IDocumentEditor editor = null;
  61. var extension = Path.GetExtension(doc.DocumentLink.FileName).ToLower();
  62. if (extension.Equals(".pdf"))
  63. {
  64. var pdf = new PDFEditorControl();
  65. //pdf.PrintAllowed = PrintAllowed;
  66. pdf.SaveAllowed = SaveAllowed;
  67. pdf.ButtonsVisible = ButtonsVisible;
  68. pdf.Watermark = Watermark;
  69. editor = pdf;
  70. }
  71. else if (extension.Equals(".png") || extension.Equals(".bmp") || extension.Equals(".jpg") || extension.Equals(".jpeg"))
  72. {
  73. editor = new ImageEditorControl();
  74. }
  75. if (editor != null)
  76. {
  77. item.Content = editor;
  78. editor.Document = doc;
  79. }
  80. }
  81. }
  82. }
  83. e.Handled = true;
  84. }
  85. protected override void OnClosing(CancelEventArgs e)
  86. {
  87. bClosing = true;
  88. base.OnClosing(e);
  89. Documents.SelectedIndex = -1;
  90. }
  91. private void Window_Loaded(object sender, RoutedEventArgs e)
  92. {
  93. //Editor.Document = _documents.FirstOrDefault();
  94. }
  95. private void OKButton_Click(object sender, RoutedEventArgs e)
  96. {
  97. //Editor.Document = null;
  98. DialogResult = true;
  99. Close();
  100. }
  101. private void CancelButton_Click(object sender, RoutedEventArgs e)
  102. {
  103. DialogResult = false;
  104. Close();
  105. }
  106. }
  107. }