JobDesignGrid.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using System.Windows;
  3. using System.Windows.Media.Imaging;
  4. using Comal.Classes;
  5. using InABox.Core;
  6. using InABox.DynamicGrid;
  7. using InABox.WPF;
  8. using PRSDesktop.Panels.Jobs;
  9. namespace PRSDesktop
  10. {
  11. internal class JobDesignGrid : DynamicDataGrid<Setout>, IJobControl
  12. {
  13. private BitmapImage barcode = PRSDesktop.Resources.barcode.AsBitmapImage();
  14. private BitmapImage design = PRSDesktop.Resources.design.AsBitmapImage();
  15. private BitmapImage qacheck = PRSDesktop.Resources.checklist.AsBitmapImage();
  16. private BitmapImage tick = PRSDesktop.Resources.tick.AsBitmapImage();
  17. public CoreTable Setouts { get; private set; }
  18. public Job Job { get; set; }
  19. public JobPanelSettings Settings { get; set; }
  20. protected override void DoReconfigure(FluentList<DynamicGridOption> options)
  21. {
  22. base.DoReconfigure(options);
  23. options.AddRange(DynamicGridOption.RecordCount, DynamicGridOption.SelectColumns, DynamicGridOption.FilterRows, DynamicGridOption.ImportData);
  24. }
  25. protected override void DoImport()
  26. {
  27. var window = new JobDesignImportWindow();
  28. if (window.ShowDialog() == true)
  29. Refresh(false,true);
  30. }
  31. protected override void Reload(Filters<Setout> criteria, Columns<Setout> columns, ref SortOrder<Setout>? sort, Action<CoreTable?, Exception?> action)
  32. {
  33. criteria.Add(new Filter<Setout>(x => x.JobLink.ID).IsEqualTo(Job.ID));
  34. sort = new SortOrder<Setout>(x => x.Number, SortDirection.Descending);
  35. base.Reload(criteria, columns, ref sort, action);
  36. }
  37. protected override bool CanCreateItems()
  38. {
  39. return Job.ID != Guid.Empty;
  40. }
  41. protected override Setout CreateItem()
  42. {
  43. var setout = base.CreateItem();
  44. setout.JobLink.ID = Job.ID;
  45. setout.JobLink.Synchronise(Job);
  46. return setout;
  47. }
  48. }
  49. }