mind_map_data.dart 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import '../../common/models/mindmap/mind_node.dart';
  2. import 'theme/dark_theme.dart';
  3. import 'theme/mind_map_theme.dart';
  4. import 'template/mind_map_template.dart';
  5. class MindMapData {
  6. final Node root;
  7. final String template;
  8. final String theme;
  9. final String version;
  10. late BaseTheme mapTheme;
  11. late BaseTemplate mapTemplate;
  12. MindMapData(this.root, this.template, this.theme, this.version) {
  13. //处理主题
  14. mapTheme = DarkTheme();
  15. mapTemplate = DefaultTemplate(mapTheme);
  16. }
  17. factory MindMapData.fromJson(Map<String, dynamic> json) {
  18. return MindMapData(
  19. Node.fromJson(json['root']),
  20. json['template'] ?? 'default',
  21. json['theme'] ?? 'fresh-blue',
  22. json['version'] ?? '1.0'
  23. );
  24. }
  25. Map<String, dynamic> _$MindMapToJson(MindMapData instance) {
  26. var map = <String, dynamic>{};
  27. map['root'] = instance.root.toJson();
  28. map['template'] = instance.template;
  29. map['theme'] = instance.theme;
  30. map['version'] = instance.version;
  31. return map;
  32. }
  33. Map<String, dynamic> toJson() => _$MindMapToJson(this);
  34. }