resolveParentUIComponent static method
void
resolveParentUIComponent({
- UINode? parent,
- UINode? element,
- UIComponent? parentUIComponent,
- UIComponent? elementUIComponent,
- bool recursive = false,
Implementation
static void resolveParentUIComponent({
UINode? parent,
UINode? element,
UIComponent? parentUIComponent,
UIComponent? elementUIComponent,
bool recursive = false,
}) {
if ((parent == null && parentUIComponent == null) ||
(element == null && elementUIComponent == null)) {
return;
}
if (elementUIComponent == null) {
var element2 = element?.asElementChecked;
if (element2 != null) {
elementUIComponent = _resolveNodeUIComponent(element2);
}
if (elementUIComponent == null) {
if (recursive && element2 != null && element2.hasUIChildren) {
if (parentUIComponent == null && parent.isElement) {
parentUIComponent = _resolveNodeUIComponent(
parent as Element,
getUIComponentByChild: true,
);
}
if (parentUIComponent != null) {
for (var child in element2.children.toIterable()) {
resolveParentUIComponent(
parent: parent,
parentUIComponent: parentUIComponent,
element: child,
);
}
}
}
return;
}
}
if (elementUIComponent._parentUIComponent != null) {
elementUIComponent._resolveParentFromParentUIComponent();
return;
}
if (parentUIComponent == null && parent.isElement) {
parentUIComponent = _resolveNodeUIComponent(
parent as Element,
getUIComponentByChild: true,
);
}
if (parentUIComponent != null) {
elementUIComponent._setParentUIComponent(parentUIComponent);
} else {
elementUIComponent._resolveParentUIComponent(
parent ?? parentUIComponent ?? elementUIComponent._parent,
);
}
}