rt_cell_info.dart 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import 'package:fis_lib_report/report/element_type.dart';
  2. import 'package:fis_lib_report/report/interfaces/cell.dart';
  3. import 'package:fis_lib_report/report/paragraph.dart';
  4. import 'package:fis_lib_report/report_info/block_element_info_interface.dart';
  5. import 'package:fis_lib_report/report_info/element_info.dart';
  6. import 'package:fis_lib_report/report_info/paragraph_info.dart';
  7. class RTCellInfo extends ElementInfo {
  8. List<IBlockElementInfo>? blocks = [];
  9. RTCellInfo.fromElement(ICell value) : super.fromElement(value) {
  10. for (var element in value.blocks!) {
  11. if (element.elementType!.name == ElementType.paragraph.name) {
  12. final paragraphInfo = element as Paragraph;
  13. final block = ParagraphInfo.fromElement(paragraphInfo);
  14. blocks!.add(block);
  15. }
  16. }
  17. }
  18. @override
  19. Map<String, dynamic> toJson() {
  20. final map = <String, dynamic>{};
  21. map.addAll(super.toJson());
  22. final blockInfos = <String, dynamic>{};
  23. for (var b in blocks!) {
  24. if (b.elementType!.name == ElementType.paragraph.name) {
  25. final paragraphInfo = b as ParagraphInfo;
  26. blockInfos.addAll(paragraphInfo.toJson());
  27. }
  28. }
  29. map['Blocks'] = blockInfos;
  30. return map;
  31. }
  32. }