fromJson method
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;
}