static public MarketOrderEntry MarketOrderEntryKonstrukt(
            UINodeInfoInTree entryAst,
            IColumnHeader[] listeScrollHeader,
            RectInt?regionConstraint)
        {
            if (!(entryAst?.VisibleIncludingInheritance ?? false))
            {
                return(null);
            }

            var ChildTransitive = entryAst.MengeChildAstTransitiiveHüle()?.ToArray();

            var ListEntryAuswert = new SictAuswertGbsListEntry(entryAst, listeScrollHeader, regionConstraint, ListEntryTrenungZeleTypEnum.InLabelTab);

            ListEntryAuswert.Berecne();

            var ListEntry = ListEntryAuswert.ErgeebnisListEntry;

            if (null == ListEntry)
            {
                return(null);
            }

            return(new MarketOrderEntry(ListEntry));
        }
        static public ChatParticipantEntry ListEntryParticipantConstruct(
            UINodeInfoInTree ast,
            IColumnHeader[] listHeader,
            RectInt?regionConstraint)
        {
            var ListEntry = SictAuswertGbsListViewport <IListEntry> .ListEntryKonstruktSctandard(ast, listHeader, regionConstraint);

            if (null == ListEntry)
            {
                return(null);
            }

            var StatusIconSprite =
                ast.MengeChildAstTransitiiveHüle()
                ?.OfType <UINodeInfoInTree>()
                ?.FirstOrDefault(k => k.PyObjTypNameIsSprite() && (k.PyObjTypName?.ToLower().Contains("status") ?? false))
                ?.AlsSprite();

            var SetFlagWithStateIconNode =
                ast?.MengeChildAstTransitiiveHüle()
                ?.OfType <UINodeInfoInTree>()
                ?.Where(k => k?.PyObjTypNameMatchesRegexPatternIgnoreCase("FlagIconWithState") ?? false)
                ?.ToArray();

            var SetFlagWithStateIcon =
                SetFlagWithStateIconNode
                ?.Select(flagNode =>
            {
                var FlagIcon = flagNode.AlsSprite();

                var childSprite =
                    flagNode?.MengeChildAstTransitiiveHüle()?.OfType <UINodeInfoInTree>()
                    ?.Where(k => k.PyObjTypNameIsSprite())
                    ?.Select(k => k?.AlsSprite())?.WhereNotDefault()?.FirstOrDefault();

                if (null != FlagIcon)
                {
                    FlagIcon.Texture0Id  = FlagIcon.Texture0Id ?? childSprite?.Texture0Id;
                    FlagIcon.TexturePath = FlagIcon.TexturePath ?? childSprite?.TexturePath;
                    FlagIcon.Color       = FlagIcon.Color ?? childSprite?.Color;
                }

                return(FlagIcon);
            })
                ?.WhereNotDefault()
                ?.ToArrayIfNotEmpty();

            return(new ChatParticipantEntry(ListEntry)
            {
                NameLabel = ast.LargestLabelInSubtree().AsUIElementTextIfTextNotEmpty(),
                StatusIcon = StatusIconSprite,
                FlagIcon = SetFlagWithStateIcon,
            });
        }