DailyReportFavouriteGrid.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Windows.Media.Imaging;
  5. using Comal.Classes;
  6. using InABox.Core;
  7. using InABox.DynamicGrid;
  8. using InABox.WPF;
  9. namespace PRSDesktop
  10. {
  11. public class DailyReportFavouriteGrid : DynamicGrid<AssignmentFavourite>
  12. {
  13. protected override void Init()
  14. {
  15. MasterColumns.Clear();
  16. MasterColumns.Add(new DynamicGridColumn { ColumnName = "Title", Width = 0 });
  17. MasterColumns.Add(new DynamicGridColumn { ColumnName = "JobNumber", Width = 100, Alignment = Alignment.MiddleCenter });
  18. MasterColumns.Add(new DynamicGridColumn { ColumnName = "ITPCode", Width = 100, Caption = "ITP", Alignment = Alignment.MiddleCenter });
  19. MasterColumns.Add(new DynamicGridColumn { ColumnName = "ActivityName", Width = 0, Caption = "Activity" });
  20. ActionColumns.Add(new DynamicImageColumn(PRSDesktop.Resources.delete.AsBitmapImage(), DeleteClick) { Position = DynamicActionColumnPosition.Start });
  21. }
  22. protected override void DoReconfigure(FluentList<DynamicGridOption> options)
  23. {
  24. options.Clear();
  25. }
  26. public List<AssignmentFavourite> Items { get; set; }
  27. private bool DeleteClick(CoreRow? arg)
  28. {
  29. if (arg == null)
  30. return false;
  31. DeleteItems(arg);
  32. return true;
  33. }
  34. public override void DeleteItems(params CoreRow[] rows)
  35. {
  36. foreach (var row in rows.OrderByDescending(x => x.Index))
  37. {
  38. var item = Items[row.Index];
  39. Items.Remove(item);
  40. }
  41. }
  42. public override AssignmentFavourite LoadItem(CoreRow row)
  43. {
  44. return row.ToObject<AssignmentFavourite>();
  45. }
  46. protected override void Reload(Filters<AssignmentFavourite> criteria, Columns<AssignmentFavourite> columns,
  47. ref SortOrder<AssignmentFavourite>? sort, Action<CoreTable, Exception?> action)
  48. {
  49. var result = new CoreTable();
  50. result.LoadColumns(typeof(AssignmentFavourite));
  51. result.LoadRows(Items);
  52. action.Invoke(result, null);
  53. }
  54. public override void SaveItem(AssignmentFavourite item)
  55. {
  56. }
  57. }
  58. }