JobTrackerGrid.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.Linq;
  3. using System.Windows;
  4. using Comal.Classes;
  5. using InABox.Clients;
  6. using InABox.Core;
  7. using InABox.DynamicGrid;
  8. namespace PRSDesktop
  9. {
  10. public class JobTrackerGrid : DynamicDataGrid<JobTracker>, IJobControl, IDataModelSource
  11. {
  12. public event DataModelUpdateEvent OnUpdateDataModel;
  13. public string SectionName => "Job Trackers";
  14. public DataModel DataModel(Selection selection)
  15. {
  16. var ids = ExtractValues(x => x.ID, selection).ToArray();
  17. return new BaseDataModel<JobTracker>(new Filter<JobTracker>(x => x.ID).InList(ids));
  18. }
  19. protected override void DoReconfigure(FluentList<DynamicGridOption> options)
  20. {
  21. base.DoReconfigure(options);
  22. options
  23. .BeginUpdate()
  24. .Add(DynamicGridOption.MultiSelect)
  25. .Add(DynamicGridOption.SelectColumns)
  26. .EndUpdate();
  27. }
  28. public Job Job { get; set; }
  29. public JobPanelSettings Settings { get; set; }
  30. protected override bool CanCreateItems()
  31. {
  32. return Job.ID != Guid.Empty;
  33. }
  34. protected override JobTracker CreateItem()
  35. {
  36. var result = base.CreateItem();
  37. result.JobLink.ID = Job.ID;
  38. result.JobLink.Synchronise(Job);
  39. return result;
  40. }
  41. protected override void Reload(Filters<JobTracker> criteria, Columns<JobTracker> columns, ref SortOrder<JobTracker> sort,
  42. Action<CoreTable, Exception> action)
  43. {
  44. criteria.Add(new Filter<JobTracker>(x => x.JobLink.ID).IsEqualTo(Job.ID));
  45. base.Reload(criteria, columns, ref sort, action);
  46. }
  47. protected override void CustomiseEditor(JobTracker[] items, DynamicGridColumn column, BaseEditor editor)
  48. {
  49. if (String.Equals(column.ColumnName, "JobLink.ID"))
  50. editor.Editable = Editable.Hidden;
  51. base.CustomiseEditor(items, column, editor);
  52. }
  53. }
  54. }