rt_Cell.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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/paragraph.dart';
  8. import 'package:fis_lib_report/report/rt_color.dart';
  9. import 'rt_table.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. final typeName = type.name;
  38. if (typeName == ElementType.paragraph.name) {
  39. final block = Paragraph.fromJson(map, parent: this);
  40. blocks!.add(block);
  41. } else if (typeName == ElementType.rtTable.name) {
  42. final block = RTTable.fromJson(map);
  43. blocks!.add(block);
  44. }
  45. }
  46. final jsonBorders = json['Borders'];
  47. borders = Borders.fromJson(jsonBorders);
  48. }
  49. }