CustomerActivityGrid.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System;
  2. using System.Windows;
  3. using Comal.Classes;
  4. using InABox.Core;
  5. using InABox.DynamicGrid;
  6. namespace PRSDesktop
  7. {
  8. public class CustomerActivityGrid : DynamicDataGrid<CustomerActivity>, ICustomerGrid
  9. {
  10. protected override void DoReconfigure(FluentList<DynamicGridOption> options)
  11. {
  12. base.DoReconfigure(options);
  13. options.AddRange(
  14. DynamicGridOption.AddRows,
  15. DynamicGridOption.EditRows,
  16. DynamicGridOption.SelectColumns,
  17. DynamicGridOption.DeleteRows
  18. );
  19. }
  20. public Customer Customer { get; set; }
  21. protected override void Reload(Filters<CustomerActivity> criteria, Columns<CustomerActivity> columns, ref SortOrder<CustomerActivity>? sort, Action<CoreTable?, Exception?> action)
  22. {
  23. criteria.Add(new Filter<CustomerActivity>(x => x.Customer).LinkValid(Customer.ID));
  24. base.Reload(criteria, columns, ref sort, action);
  25. }
  26. protected override CustomerActivity CreateItem()
  27. {
  28. var result = base.CreateItem();
  29. result.Customer.ID = Customer.ID;
  30. result.Customer.Synchronise(Customer);
  31. return result;
  32. }
  33. protected override BaseEditor? GetEditor(object item, DynamicGridColumn column)
  34. {
  35. if (column.ColumnName.Equals("Customer.ID"))
  36. return new NullEditor();
  37. return base.GetEditor(item, column);
  38. }
  39. protected override void DoAdd(bool OpenEditorOnDirectEdit = false)
  40. {
  41. if (Customer.ID == Guid.Empty)
  42. MessageBox.Show("Please select a Customer first!");
  43. else
  44. base.DoAdd();
  45. }
  46. }
  47. }