DigitalFormRoleCrossTab.cs 2.0 KB

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