DigitalFormRoleCrossTab.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using Comal.Classes;
  2. using InABox.Configuration;
  3. using InABox.Core;
  4. using InABox.DynamicGrid;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace PRSDesktop;
  10. public class DigitalFormRoleCrossTab : DynamicManyToManyCrossTab<RoleForm, DigitalForm, Role>
  11. {
  12. public DynamicGridFilterButtonComponent<DigitalForm> DigitalFormFilter { get; init; }
  13. public DynamicGridFilterButtonComponent<Role> RoleFilter { get; init; }
  14. public DigitalFormRoleCrossTab()
  15. {
  16. DigitalFormFilter = new(this,
  17. new GlobalConfiguration<CoreFilterDefinitions>(nameof(DigitalForm)),
  18. new UserConfiguration<CoreFilterDefinitions>(nameof(DigitalForm))) { ButtonText = "Digital Forms" };
  19. RoleFilter = new(this,
  20. new GlobalConfiguration<CoreFilterDefinitions>(nameof(Role)),
  21. new UserConfiguration<CoreFilterDefinitions>(nameof(Role))) { ButtonText = "Roles" };
  22. DigitalFormFilter.OnFilterRefresh += () => Refresh(false, true);
  23. RoleFilter.OnFilterRefresh += () => Refresh(true, true);
  24. }
  25. protected override Filter<DigitalForm>? RowFilter()
  26. {
  27. return DigitalFormFilter.GetFilter();
  28. }
  29. protected override Filter<Role>? ColumnFilter()
  30. {
  31. return RoleFilter.GetFilter();
  32. }
  33. protected override Columns<Role>? LoadColumnColumns()
  34. {
  35. return Columns.None<Role>().Add(x => x.Code);
  36. }
  37. protected override string FormatColumnHeader(CoreRow row)
  38. {
  39. return row.Get<Role, string>(x => x.Code);
  40. }
  41. protected override SortOrder<Role>? LoadColumnSort()
  42. {
  43. return null;
  44. }
  45. protected override DynamicGridColumns LoadRowColumns()
  46. {
  47. var columns = new DynamicGridColumns();
  48. columns.Add<DigitalForm>(x => x.Code, 100, "Code", "", Alignment.MiddleLeft);
  49. columns.Add<DigitalForm>(x => x.Description, 100, "Description", "", Alignment.MiddleLeft);
  50. return columns;
  51. }
  52. }