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 && element is UIElement) {
elementUIComponent = _resolveNodeUIComponent(element);
}
if (elementUIComponent == null) {
if (recursive && element is UIElement && element.hasUIChildren) {
if (parentUIComponent == null && parent is UIElement) {
parentUIComponent =
_resolveNodeUIComponent(parent, getUIComponentByChild: true);
}
if (parentUIComponent != null) {
for (var child in element.children) {
resolveParentUIComponent(
parent: parent,
parentUIComponent: parentUIComponent,
element: child);
}
}
}
return;
}
if (elementUIComponent._parentUIComponent != null) {
return;
}
if (parentUIComponent == null && parent is UIElement) {
parentUIComponent =
_resolveNodeUIComponent(parent, getUIComponentByChild: true);
}
if (parentUIComponent != null) {
elementUIComponent._setParentUIComponent(parentUIComponent);
} else {
elementUIComponent._resolveParentUIComponent(
parent ?? parentUIComponent ?? elementUIComponent._parent);
}
}