element.dart 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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(IReportElement parent) {
  30. id = Uuid().v1();
  31. margin = RTThickness.uniform(0);
  32. this.parent = parent;
  33. horizontalAlignment = HorizontalLayout.Stretch;
  34. verticalAlignment = VerticalLayout.Stretch;
  35. }
  36. Element.fromJson(Map<String, dynamic> json) {
  37. id = json['Id'] ?? const Uuid().v1();
  38. margin = RTThickness.fromJson(json['Margin']);
  39. if (json['MeasureTag'] == null) {
  40. measureTag = null;
  41. } else {
  42. measureTag = MeasureTag.fromJson(json['MeasureTag']);
  43. }
  44. if (json['Tag'] == null) {
  45. tag = null;
  46. } else {
  47. tag = ElementTag.fromJson(json['Tag']);
  48. }
  49. print(json['HorizontalAlignment']);
  50. horizontalAlignment = HorizontalLayout.values
  51. .firstWhere((e) => e.name == json['HorizontalAlignment']);
  52. verticalAlignment = VerticalLayout.values
  53. .firstWhere((e) => e.name == json['VerticalAlignment']);
  54. elementType = ElementType.fromJson(json['ElementType']);
  55. index = json[index];
  56. //parent
  57. }
  58. }