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 IListEntry ListEntryKonstruktSctandard(
			UINodeInfoInTree uiNode,
			IColumnHeader[] header,
			RectInt? regionConstraint,
			ListEntryTrenungZeleTypEnum? trenungZeleTyp)
		{
			if (!(uiNode?.VisibleIncludingInheritance ?? false))
				return null;

			var Auswert = new SictAuswertGbsListEntry(uiNode, header, regionConstraint, trenungZeleTyp);

			Auswert.Berecne();

			return Auswert.ErgeebnisListEntry;
		}
        static public IOverviewEntry OverviewEntryKonstrukt(
            UINodeInfoInTree EntryAst,
            IColumnHeader[] ListeScrollHeader,
            RectInt?regionConstraint)
        {
            if (!(EntryAst?.VisibleIncludingInheritance ?? false))
            {
                return(null);
            }

            var ListEntryAuswert = new SictAuswertGbsListEntry(EntryAst, ListeScrollHeader, regionConstraint, ListEntryTrenungZeleTypEnum.Ast);

            ListEntryAuswert.Berecne();

            var ListEntry = ListEntryAuswert.ErgeebnisListEntry;

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

            var MainIconAst =
                EntryAst?.FirstMatchingNodeFromSubtreeBreadthFirst(c => c?.PyObjTypNameMatchesRegexPatternIgnoreCase(MainIconPyTypeName) ?? false);

            var RightIconContainer =
                EntryAst?.FirstMatchingNodeFromSubtreeBreadthFirst(k =>
                                                                   k.PyObjTypNameIsContainer() &&
                                                                   //	2015.09.01:	Name = "rightAlignedIconContainer"
                                                                   Regex.Match(k?.Name ?? "", "right.*icon", RegexOptions.IgnoreCase).Success);

            var RightIcon =
                RightIconContainer?.MatchingNodesFromSubtreeBreadthFirst(AuswertGbs.Glob.PyObjTypNameIsIcon)
                ?.Select(AuswertGbs.Extension.AlsSprite)
                ?.WhereNotDefault()
                ?.OrdnungLabel()
                ?.ToArray();

            var MainIconSetIndicatorName =
                MainIconAst?.DictListKeyStringValueNotEmpty?.Where(key => key.RegexMatchSuccessIgnoreCase(MainIconIndicatorKeyRegexPattern))
                ?.ToArrayIfNotEmpty();

            return(new OverviewEntry(ListEntry)
            {
                MainIconSetIndicatorName = MainIconSetIndicatorName,
                RightIcon = RightIcon,
            });
        }
        /// <summary>
        /// 2015.07.28
        /// Bescriftung für Item welces meerere Drone repräsentiirt:
        /// "Hobgoblin I (2)"
        /// </summary>
        /// <param name="entryAst"></param>
        /// <param name="listeScrollHeader"></param>
        /// <returns></returns>
        static public DroneViewEntry DroneEntryKonstrukt(
            UINodeInfoInTree entryAst,
            IColumnHeader[] listeScrollHeader,
            RectInt?regionConstraint)
        {
            if (!(entryAst?.VisibleIncludingInheritance ?? false))
            {
                return(null);
            }

            var listEntryAuswert = new SictAuswertGbsListEntry(entryAst, listeScrollHeader, regionConstraint, ListEntryTrenungZeleTypEnum.Ast);

            listEntryAuswert.Berecne();

            var listEntry = listEntryAuswert.ErgeebnisListEntry;

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

            var LabelGröösteAst = entryAst?.LargestLabelInSubtree();

            var labelGrööste = LabelGröösteAst.AsUIElementTextIfTextNotEmpty();

            var isGroup = listEntry?.IsGroup ?? false;

            if (isGroup)
            {
                var Caption = labelGrööste;

                return(new DroneViewEntryGroup(listEntry)
                {
                    Caption = labelGrööste,
                });
            }
            else
            {
                var MengeContainerAst =
                    entryAst.MatchingNodesFromSubtreeBreadthFirst(
                        kandidaat => kandidaat.PyObjTypNameIsContainer(),
                        null,
                        3, 1);

                var GaugesAst =
                    MengeContainerAst.SuuceFlacMengeAstFrüheste(
                        kandidaat => string.Equals("gauges", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                        1, 0);

                var MengeGaugeScpezContainerAst =
                    GaugesAst.MatchingNodesFromSubtreeBreadthFirst(
                        kandidaat => kandidaat.PyObjTypNameIsContainer(),
                        null,
                        1, 1,
                        true);

                var DictZuTypSictStringTreferpunkte = new Dictionary <string, int?>();

                if (null != MengeGaugeScpezContainerAst)
                {
                    foreach (var GaugeScpezContainerAst in MengeGaugeScpezContainerAst)
                    {
                        if (null == GaugeScpezContainerAst)
                        {
                            continue;
                        }

                        var GaugeScpezContainerAstName = GaugeScpezContainerAst.Name;

                        if (null == GaugeScpezContainerAstName)
                        {
                            continue;
                        }

                        var nameMatch = GaugeScpezContainerAstName?.RegexMatchIfSuccess(DroneEntryGaugeScpezAstNameRegexPattern, RegexOptions.IgnoreCase);

                        var typSictString = nameMatch?.Groups[1].Value;

                        if (null == typSictString)
                        {
                            continue;
                        }

                        DictZuTypSictStringTreferpunkte[typSictString] = AusDroneEntryGaugeTreferpunkteRelMili(GaugeScpezContainerAst);
                    }
                }

                var TreferpunkteStruct = DictZuTypSictStringTreferpunkte.FirstOrDefault(kandidaat => kandidaat.Key.ToLower().Contains("struct"));
                var TreferpunkteArmor  = DictZuTypSictStringTreferpunkte.FirstOrDefault(kandidaat => kandidaat.Key.ToLower().Contains("armor"));
                var TreferpunkteShield = DictZuTypSictStringTreferpunkte.FirstOrDefault(kandidaat => kandidaat.Key.ToLower().Contains("shield"));

                var Treferpunkte = new ShipHitpointsAndEnergy
                {
                    Struct = TreferpunkteStruct.Value,
                    Armor  = TreferpunkteArmor.Value,
                    Shield = TreferpunkteShield.Value,
                };

                return(new DroneViewEntryItem(listEntry)
                {
                    Hitpoints = Treferpunkte,
                });
            }
        }