JobDesignGrid.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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,
  32. Action<CoreTable, Exception> action)
  33. {
  34. criteria.Add(new Filter<Setout>(x => x.JobLink.ID).IsEqualTo(Job.ID));
  35. sort = new SortOrder<Setout>(x => x.Number, SortDirection.Descending);
  36. base.Reload(criteria, columns, ref sort, action);
  37. }
  38. protected override bool CanCreateItems()
  39. {
  40. return Job.ID != Guid.Empty;
  41. }
  42. protected override Setout CreateItem()
  43. {
  44. var setout = base.CreateItem();
  45. setout.JobLink.ID = Job.ID;
  46. setout.JobLink.Synchronise(Job);
  47. return setout;
  48. }
  49. }
  50. }