getAnchorView method

Element? getAnchorView(
  1. String eid
)

Implementation

Element? getAnchorView(String eid) {
  debugPrint("suraj getAnchorView EID : $eid");
  List<String> path = eid.split(widgetSeparator);
  Element rootElement = element;

  for (int i = 0; i < path.length - 2; i++) {
    List<String> pathVariables = path[i + 1].split(widgetIndexSeparator);
    String ix = pathVariables[1].split(indexSeparator)[1];

    List<Element> children = rootElement.children;

    if (children.length > int.parse(ix)) {
      if (pathVariables.length == 3) {
        String key = pathVariables[2].split(indexSeparator)[1];
        for (int i = 0; i < children.length; i++) {
          if (key == children[i].widget.key.toString()) {
            rootElement = children[i];
            break;
          }
        }
      } else {
        rootElement = children[int.parse(ix)];
      }
    } else {
      return null;
    }
    if (rootElement.widget.identity() == pathVariables[0]) {
      /*debugPrint("element name : " + rootElement.widget.identity() +
        " EID element name " + pathVariables[0] +
        " No Of Children : " + rootElement.children.length.toString() +
        " ix : " + ix.toString());*/
    } else {
      debugPrint("Widget Mismatch, Anchor View not present");
      debugPrint("element name : ${rootElement.widget.identity()} "
          "EID element name ${pathVariables[0]} No Of Children : "
          "${rootElement.children.length} ix : $ix");
      return null;
    }
  }
  return rootElement;
}