recurseKey static method
List<Map<String, dynamic> >
recurseKey(
- BuildContext element,
- double pixRatio,
- int screenWidth,
- int screenHeight,
Implementation
static List<Map<String, dynamic>> recurseKey(BuildContext element,
double pixRatio, int screenWidth, int screenHeight) {
List<Map<String, dynamic>> list = [];
try {
plotlineDebugLog("recurseKey called with pixRatio: $pixRatio, screenWidth: $screenWidth, screenHeight: $screenHeight");
element.visitChildElements((element) {
try {
String? key = extractKeyValue(element.widget.key);
plotlineDebugLog("Visited Raw Element: $key, ${element.widget.runtimeType}");
if (key != null && key.contains("<'") && key.contains("'>") && key.startsWith("[<'") && visibilityMap[key] == 100.0) {
plotlineDebugLog("Visited Element: $key");
RenderBox box = element.findRenderObject() as RenderBox;
Offset position = box.localToGlobal(Offset.zero);
if (isWithinBounds(
element, position, pixRatio, screenWidth, screenHeight)) {
plotlineDebugLog("Element within Bounds: $key");
Map<String, dynamic> newPosition = {};
Map<String, dynamic> elementObj = {};
newPosition['x'] = ((position.dx * pixRatio) + 0.6).round();
newPosition['y'] = ((position.dy * pixRatio) + 0.6).round();
newPosition['width'] =
((element.size?.width ?? 0) * pixRatio).round();
newPosition['height'] =
((element.size?.height ?? 0) * pixRatio).round();
elementObj['position'] = newPosition;
var parentElement = element.findAncestorWidgetOfExactType<PView>();
if (parentElement != null) {
if (parentElement.isWidget) {
elementObj['clientElementId'] = key.substring(key.indexOf("'") + 1, key.lastIndexOf("'"));
elementObj['isWidget'] = true;
} else {
elementObj['clientElementId'] = key;
elementObj['isWidget'] = false;
}
list.add(elementObj);
}
}
}
list.addAll(recurseKey(element, pixRatio, screenWidth, screenHeight));
} catch (e) {
debugPrint("Error in vCElements: $e");
}
});
} catch (e) {
debugPrint("Error in rKey: $e");
}
return list;
}