MeetingItemMotionGrid.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.Threading;
  3. using System.Windows.Forms;
  4. using System.Windows.Media.Imaging;
  5. using Comal.Classes;
  6. using InABox.Core;
  7. using InABox.DynamicGrid;
  8. using InABox.WPF;
  9. using Button = System.Windows.Controls.Button;
  10. namespace PRSDesktop;
  11. public class MeetingItemMotionGrid : DynamicDataGrid<MeetingMotion>
  12. {
  13. public Guid MeetingItemID { get; set; }
  14. public MeetingItemMotionGrid()
  15. {
  16. AddButton("Show Votes", null, null, ShowVotes);
  17. //ActionColumns.Add(new DynamicImageColumn(VoteImage, VoteAction) { Position = DynamicActionColumnPosition.End });
  18. }
  19. private bool ShowVotes(Button arg1, CoreRow[] arg2)
  20. {
  21. MessageBox.Show("Not Implemented");
  22. return false;
  23. }
  24. protected override void DoReconfigure(DynamicGridOptions options)
  25. {
  26. base.DoReconfigure(options);
  27. options.Clear();
  28. options.AddRows = true;
  29. options.EditRows = true;
  30. options.DeleteRows = true;
  31. options.RecordCount = true;
  32. options.SelectColumns = true;
  33. }
  34. protected override bool CanCreateItems()
  35. {
  36. return MeetingItemID != Guid.Empty && base.CanCreateItems();
  37. }
  38. public override MeetingMotion CreateItem()
  39. {
  40. if (MeetingItemID == Guid.Empty)
  41. throw new Exception("No Meeting Selected!");
  42. var result = base.CreateItem();
  43. result.Item.ID = MeetingItemID;
  44. return result;
  45. }
  46. protected override void Reload(
  47. Filters<MeetingMotion> criteria, Columns<MeetingMotion> columns, ref SortOrder<MeetingMotion>? sort,
  48. CancellationToken token, Action<CoreTable?, Exception?> action)
  49. {
  50. criteria.Add(MeetingItemID == Guid.Empty
  51. ? new Filter<MeetingMotion>(x=>x.ID).None()
  52. : new Filter<MeetingMotion>(x => x.Item.ID).IsEqualTo(MeetingItemID));
  53. base.Reload(criteria, columns, ref sort, token, action);
  54. }
  55. }