JobDesignDocumentGrid.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System;
  2. using System.Windows.Media.Imaging;
  3. using Comal.Classes;
  4. using InABox.Clients;
  5. using InABox.Core;
  6. using InABox.DynamicGrid;
  7. using InABox.WPF;
  8. namespace PRSDesktop
  9. {
  10. public class JobDesignDocumentGrid : DynamicDataGrid<SetoutDocument>
  11. {
  12. public JobDesignDocumentGrid()
  13. {
  14. Options.AddRange(DynamicGridOption.RecordCount, DynamicGridOption.SelectColumns);
  15. HiddenColumns.Add(x => x.DocumentLink.ID);
  16. HiddenColumns.Add(x => x.EntityLink.ID);
  17. HiddenColumns.Add(x => x.Superceded);
  18. HiddenColumns.Add(x => x.DocumentLink.FileName);
  19. ActionColumns.Add(new DynamicImageColumn(DocumentImage, ViewDocument) { Position = DynamicActionColumnPosition.Start });
  20. ActionColumns.Add(new DynamicTickColumn<SetoutDocument, DateTime>(
  21. x => x.Superceded,
  22. PRSDesktop.Resources.tick.AsBitmapImage(),
  23. PRSDesktop.Resources.warning.AsBitmapImage(),
  24. PRSDesktop.Resources.tick.AsBitmapImage(),
  25. SupercedeDocument
  26. ));
  27. Options.Remove(DynamicGridOption.AddRows);
  28. Options.Remove(DynamicGridOption.DeleteRows);
  29. Options.Remove(DynamicGridOption.ImportData);
  30. Options.Remove(DynamicGridOption.ExportData);
  31. }
  32. public Guid SetoutID { get; set; }
  33. protected override SetoutDocument CreateItem()
  34. {
  35. var result = base.CreateItem();
  36. result.EntityLink.ID = SetoutID;
  37. return result;
  38. }
  39. protected override void Reload(Filters<SetoutDocument> criteria, Columns<SetoutDocument> columns, ref SortOrder<SetoutDocument> sort,
  40. Action<CoreTable, Exception> action)
  41. {
  42. criteria.Add(new Filter<SetoutDocument>(x => x.EntityLink.ID).IsEqualTo(SetoutID));
  43. base.Reload(criteria, columns, ref sort, action);
  44. }
  45. private BitmapImage DocumentImage(CoreRow arg)
  46. {
  47. return PRSDesktop.Resources.view.AsBitmapImage();
  48. }
  49. private bool ViewDocument(CoreRow row)
  50. {
  51. var doc = row.ToObject<SetoutDocument>();
  52. var viewer = new DocumentEditor(doc);
  53. //viewer.PrintAllowed = Security.IsAllowed<CanPrintFactoryFloorDrawings>();
  54. viewer.SaveAllowed = Security.IsAllowed<CanSaveFactoryFloorDrawings>();
  55. viewer.ShowDialog();
  56. return false;
  57. }
  58. private bool SupercedeDocument(CoreRow row)
  59. {
  60. var sd = row.ToObject<SetoutDocument>();
  61. sd.Superceded = sd.Superceded.IsEmpty() ? DateTime.Now : DateTime.MinValue;
  62. new Client<SetoutDocument>().Save(sd, string.Format("{0} Superceded Flag", sd.Superceded.IsEmpty() ? "Cleared" : "Set"));
  63. return true;
  64. }
  65. }
  66. }