InteractiveSortInfo.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. namespace FastReport.AdvMatrix
  3. {
  4. internal class InteractiveSortInfo
  5. {
  6. internal SortInfo Column { get; private set; }
  7. internal SortInfo Row { get; private set; }
  8. public InteractiveSortInfo(MatrixData matrixData)
  9. {
  10. Column = new SortInfo(matrixData, true);
  11. Row = new SortInfo(matrixData, false);
  12. }
  13. internal class SortInfo
  14. {
  15. private MatrixData matrixData;
  16. public bool IsColumn { get; private set; }
  17. public int Index { get; set; }
  18. public SortOrder Sort { get; set; }
  19. public HeaderDescriptor Descriptor
  20. {
  21. get
  22. {
  23. HeaderData data = IsColumn ? matrixData.Columns.Data.FindByIndex(Index) : matrixData.Rows.Data.FindByIndex(Index);
  24. if (data != null)
  25. return data.Descriptor;
  26. return null;
  27. }
  28. }
  29. public SortInfo(MatrixData matrixData, bool isColumn)
  30. {
  31. this.matrixData = matrixData;
  32. IsColumn = isColumn;
  33. }
  34. }
  35. }
  36. }