element.dart 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import 'package:fis_lib_report/report/element_tag.dart';
  2. import 'package:fis_lib_report/report/element_type.dart';
  3. import 'package:fis_lib_report/report/interfaces/element.dart';
  4. import 'package:fis_lib_report/report/interfaces/position_layout.dart';
  5. import 'package:fis_lib_report/report/interfaces/report_element.dart';
  6. import 'package:fis_lib_report/report/measure_tag.dart';
  7. import 'package:fis_lib_report/report/rt_thickness.dart';
  8. import 'package:uuid/uuid.dart';
  9. class Element implements IElement {
  10. @override
  11. ElementType? elementType;
  12. @override
  13. HorizontalLayout? horizontalAlignment;
  14. @override
  15. int? index;
  16. @override
  17. RTThickness? margin;
  18. @override
  19. MeasureTag? measureTag;
  20. @override
  21. IReportElement? parent;
  22. @override
  23. ElementTag? tag;
  24. @override
  25. VerticalLayout? verticalAlignment;
  26. @override
  27. String? id;
  28. Element();
  29. Element.fromParent(this.parent) {
  30. id = const Uuid().v1();
  31. margin = RTThickness.uniform(0);
  32. horizontalAlignment = HorizontalLayout.Stretch;
  33. verticalAlignment = VerticalLayout.Stretch;
  34. }
  35. Element.fromJson(Map<String, dynamic> json) {
  36. id = json['Id'] ?? const Uuid().v1();
  37. margin = RTThickness.fromJson(json['Margin']);
  38. if (json['MeasureTag'] == null) {
  39. measureTag = null;
  40. } else {
  41. measureTag = MeasureTag.fromJson(json['MeasureTag']);
  42. }
  43. if (json['Tag'] == null) {
  44. tag = null;
  45. } else {
  46. tag = ElementTag.fromJson(json['Tag']);
  47. }
  48. horizontalAlignment = HorizontalLayout.values
  49. .firstWhere((e) => e.name == json['HorizontalAlignment']);
  50. verticalAlignment = VerticalLayout.values
  51. .firstWhere((e) => e.name == json['VerticalAlignment']);
  52. elementType = ElementType.fromJson(json['ElementType']);
  53. index = json[index];
  54. //parent
  55. }
  56. }