import 'package:fis_lib_report/report/borders.dart'; import 'package:fis_lib_report/report/element.dart'; import 'package:fis_lib_report/report/element_type.dart'; import 'package:fis_lib_report/report/interfaces/block_element.dart'; import 'package:fis_lib_report/report/interfaces/cell.dart'; import 'package:fis_lib_report/report/interfaces/element.dart'; import 'package:fis_lib_report/report/interfaces/report_element.dart'; import 'package:fis_lib_report/report/paragraph.dart'; import 'package:fis_lib_report/report/rt_color.dart'; class RTCell extends Element implements ICell { @override RTColor? background; @override List? blocks = []; @override WidthTypeEnum? heightType; @override WidthTypeEnum? widthType; Borders? borders; RTCell.fromJson(Map json, {IElement? parent}) : super.fromJson(json) { this.parent = parent; final jsonBackground = json['Background']; background = RTColor.fromJson(jsonBackground); if (json['HeightType'] != null) { heightType = WidthTypeEnum.values .firstWhere((element) => element.name == json['HeightType']); } if (json['WidthType'] != null) { widthType = WidthTypeEnum.values .firstWhere((element) => element.name == json['WidthType']); } List jsonBlocks = json['Blocks']; for (var map in jsonBlocks) { final jsonType = map['ElementType']; final type = ElementType.fromJson(jsonType); if (type.name == ElementType.paragraph.name) { final block = Paragraph.fromJson(map, parent: this); blocks!.add(block); } } final jsonBorders = json['Borders']; borders = Borders.fromJson(jsonBorders); } }