rt_Cell.dart 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import 'package:fis_lib_report/report/borders.dart';
  2. import 'package:fis_lib_report/report/element.dart';
  3. import 'package:fis_lib_report/report/element_type.dart';
  4. import 'package:fis_lib_report/report/interfaces/block_element.dart';
  5. import 'package:fis_lib_report/report/interfaces/cell.dart';
  6. import 'package:fis_lib_report/report/interfaces/element.dart';
  7. import 'package:fis_lib_report/report/interfaces/report_element.dart';
  8. import 'package:fis_lib_report/report/paragraph.dart';
  9. import 'package:fis_lib_report/report/rt_color.dart';
  10. class RTCell extends Element implements ICell {
  11. @override
  12. RTColor? background;
  13. @override
  14. List<IBlockElement>? blocks = [];
  15. @override
  16. WidthTypeEnum? heightType;
  17. @override
  18. WidthTypeEnum? widthType;
  19. Borders? borders;
  20. RTCell.fromJson(Map<String, dynamic> json, {IElement? parent})
  21. : super.fromJson(json) {
  22. this.parent = parent;
  23. final jsonBackground = json['Background'];
  24. background = RTColor.fromJson(jsonBackground);
  25. if (json['HeightType'] != null) {
  26. heightType = WidthTypeEnum.values
  27. .firstWhere((element) => element.name == json['HeightType']);
  28. }
  29. if (json['WidthType'] != null) {
  30. widthType = WidthTypeEnum.values
  31. .firstWhere((element) => element.name == json['WidthType']);
  32. }
  33. List<dynamic> jsonBlocks = json['Blocks'];
  34. for (var map in jsonBlocks) {
  35. final jsonType = map['ElementType'];
  36. final type = ElementType.fromJson(jsonType);
  37. if (type.name == ElementType.paragraph.name) {
  38. final block = Paragraph.fromJson(map, parent: this);
  39. blocks!.add(block);
  40. }
  41. }
  42. final jsonBorders = json['Borders'];
  43. borders = Borders.fromJson(jsonBorders);
  44. }
  45. }