fromJson method

void fromJson(
  1. Map<String, dynamic> json
)

Load Data&Style from Json

Implementation

void fromJson(Map<String, dynamic> json) {
  _isLoading = true;
  if (json.containsKey("MapType")) {
    MapType mapType = MapType.mind;
    for (MapType type in MapType.values) {
      if (type.name == json["MapType"].toString()) {
        mapType = type;
        break;
      }
    }
    setMapType(mapType);
  }
  if (json.containsKey("MindMapType")) {
    MindMapType mindMapType = MindMapType.leftAndRight;
    for (MindMapType type in MindMapType.values) {
      if (type.name == json["MindMapType"].toString()) {
        mindMapType = type;
        break;
      }
    }
    setMindMapType(mindMapType);
  }
  if (json.containsKey("Zoom")) {
    setZoom(double.tryParse(json["Zoom"].toString()) ?? 1.0);
  }
  if (json.containsKey("ExpandedLevel")) {
    setExpandedLevel(int.tryParse(json["ExpandedLevel"].toString()) ?? 99);
  }
  if (json.containsKey("BackgroundColor")) {
    setBackgroundColor(stringToColor(json["BackgroundColor"].toString()));
  }
  if (json.containsKey("x") && json.containsKey("y")) {
    double x = double.tryParse(json["x"].toString()) ?? 0;
    double y = double.tryParse(json["y"].toString()) ?? 0;
    setOffset(Offset(x, y));
  }
  if (json.containsKey("Theme")) {
    String themeName = json["Theme"];
    if (themeName.isNotEmpty) {
      Map<String, dynamic>? themeJson = jsonDecode(themeName);
      if (themeJson != null) {
        setTheme(JsonTheme("jsonTheme", themeJson));
      }
    }
  }
  if (json.containsKey("RootNode")) {
    Map<String, dynamic> map = json["RootNode"];
    if (map.isNotEmpty) {
      IMindMapNode? node = createNode(map.keys.first);
      if (node != null) {
        setRootNode(node);
        node.fromJson(map);
      }
    }
  }
  _isLoading = false;
}