rt_Cell.dart 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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/paragraph.dart';
  7. import 'package:fis_lib_report/report/rt_color.dart';
  8. class RTCell extends Element implements ICell {
  9. @override
  10. RTColor? background;
  11. @override
  12. List<IBlockElement>? blocks = [];
  13. @override
  14. WidthTypeEnum? heightType;
  15. @override
  16. WidthTypeEnum? widthType;
  17. Borders? borders;
  18. RTCell.fromJson(Map<String, dynamic> json) : super.fromJson(json) {
  19. final jsonBackground = json['Background'];
  20. background = RTColor.fromJson(jsonBackground);
  21. if (json['HeightType'] != null) {
  22. heightType = WidthTypeEnum.values
  23. .firstWhere((element) => element.name == json['HeightType']);
  24. }
  25. if (json['WidthType'] != null) {
  26. widthType = WidthTypeEnum.values
  27. .firstWhere((element) => element.name == json['WidthType']);
  28. }
  29. List<dynamic> jsonBlocks = json['Blocks'];
  30. jsonBlocks.forEach((map) {
  31. final jsonType = map['ElementType'];
  32. final type = ElementType.fromJson(jsonType);
  33. if (type.name == ElementType.paragraph!.name) {
  34. final block = Paragraph.fromJson(map);
  35. blocks!.add(block);
  36. }
  37. });
  38. final jsonBorders = json['Borders'];
  39. borders = Borders.fromJson(jsonBorders);
  40. }
  41. }