MeetingItemMotionGrid.cs 1.9 KB

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