V6ProjectGrid.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System;
  2. using System.Windows.Media.Imaging;
  3. using InABox.Core;
  4. using InABox.DynamicGrid;
  5. using InABox.WPF;
  6. using PRSDesktop.Integrations.V6;
  7. namespace PRSDesktop.Integrations.V6.Grids;
  8. public class V6ProjectGrid : DynamicItemsListGrid<V6Project>
  9. {
  10. private static BitmapImage Quotation => PRSDesktop.Resources.quotation.AsBitmapImage();
  11. private static BitmapImage Revision => PRSDesktop.Resources.revision.AsBitmapImage();
  12. public V6ProjectGrid()
  13. {
  14. ActionColumns.Add(new DynamicImageColumn(StatusImage) { Position = DynamicActionColumnPosition.Start});
  15. }
  16. public override DynamicGridColumns GenerateColumns()
  17. {
  18. return new DynamicGridColumns()
  19. .AddFluent<V6Project>(x => x.Number, 60, "No.", null, Alignment.MiddleCenter)
  20. .AddFluent<V6Project>(x => x.Title, 0, "Title", null, Alignment.MiddleLeft);
  21. }
  22. private BitmapImage? StatusImage(CoreRow? row)
  23. {
  24. return row == null
  25. ? Quotation
  26. : string.IsNullOrWhiteSpace(row.Get<V6Project, string>(x => x.Variation))
  27. ? Quotation
  28. : Revision;
  29. }
  30. protected override void DoReconfigure(DynamicGridOptions options)
  31. {
  32. base.DoReconfigure(options);
  33. options.FilterRows = true;
  34. options.HideDatabaseFilters = true;
  35. }
  36. }