override public void Berecne()
        {
            base.Berecne();

            if (null == Ergeebnis)
            {
                return;
            }

            var scanResultScrollAst =
                AstMainContainerMain
                ?.MatchingNodesFromSubtreeBreadthFirst(node => node?.PyObjTypNameIsScroll() ?? false)
                ?.OrderBy(node => node.LaagePlusVonParentErbeLaageB() ?? int.MinValue)
                ?.LastOrDefault();

            var listView =
                scanResultScrollAst?.AlsListView(
                    (node, setHeader, regionConstraint) => SictAuswertGbsListViewport <IListEntry> .ListEntryKonstruktSctandard(node, setHeader, regionConstraint, ListEntryTrenungZeleTypEnum.Ast));

            ErgeebnisWindowProbeScanner =
                new WindowProbeScanner(Ergeebnis)
            {
                ScanResultView = listView,
            };
        }
示例#2
0
        override public void Berecne()
        {
            base.Berecne();

            if (null == base.Ergeebnis)
            {
                return;
            }

            var TypeSelectionNameMatch = Regex.Match(HeaderCaptionText ?? "", AusHeaderCaptionTextTypeSelectionNameRegexPattern, RegexOptions.IgnoreCase);

            if (TypeSelectionNameMatch.Success)
            {
                TypeSelectionName = TypeSelectionNameMatch.Groups[1].Value;
            }

            TabGroupAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstMainContainerMain, (kandidaat) =>
                    string.Equals("TabGroup", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals("tabparent", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            if (null != TabGroupAst)
            {
                TabGroupAuswert = new SictAuswertGbsTabGroup(TabGroupAst);
                TabGroupAuswert.Berecne();
            }

            var TabGroup = (null == TabGroupAuswert) ? null : TabGroupAuswert.Ergeebnis;

            ScrollAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstMainContainerMain, (kandidaat) =>
                    string.Equals("BasicDynamicScroll", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals("overviewscroll2", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            var ListAuswert = new SictAuswertGbsListViewport <IOverviewEntry>(ScrollAst, SictAuswertGbsWindowOverviewZaile.OverviewEntryKonstrukt);

            ListAuswert.Read();

            ViewportOverallLabelAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    ListAuswert.ScrollClipperContentNode, (kandidaat) => AuswertGbs.Glob.GbsAstTypeIstEveCaption(kandidaat));

            var ViewportOverallLabelString =
                (ViewportOverallLabelAst?.VisibleIncludingInheritance ?? false) ? ViewportOverallLabelAst?.LabelText() : null;

            var Ergeebnis = new WindowOverView(base.Ergeebnis)
            {
                PresetTab = TabGroup?.ListTab,
                ListView  = ListAuswert?.Result,
                ViewportOverallLabelString = ViewportOverallLabelString,
            };

            this.ErgeebnisScpez = Ergeebnis;
        }
        public void Berecne()
        {
            ListAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    InventoryAst, (Kandidaat) => "Scroll".EqualsIgnoreCase(Kandidaat.PyObjTypName),
                    1, 1);

            var MengeInvItemAst =
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    InventoryAst,
                    (Kandidaat) => true == Kandidaat.VisibleIncludingInheritance && "InvItem".EqualsIgnoreCase(Kandidaat.PyObjTypName), null, null, null);

            if (null != MengeInvItemAst)
            {
                foreach (var InvItemAst in MengeInvItemAst)
                {
                    if (null == InvItemAst)
                    {
                        continue;
                    }

                    var InvItemAstGrööse = InvItemAst.Grööse;

                    if (!InvItemAstGrööse.HasValue)
                    {
                        continue;
                    }

                    if (44 < InvItemAstGrööse.Value.B)
                    {
                        SictwaiseScaintGeseztAufListNict = true;
                        break;
                    }
                }
            }

            if (null == ListAst)
            {
                return;
            }

            ListAuswert = new SictAuswertGbsListViewport <IListEntry>(ListAst, SictAuswertGbsListViewport <IListEntry> .ListEntryKonstruktSctandard);
            ListAuswert.Read();

            var ListAuswertErgeebnis = ListAuswert.Result;

            if (null == ListAuswertErgeebnis)
            {
                return;
            }

            var Ergeebnis = new Inventory(InventoryAst.AsUIElementIfVisible())
            {
                ListView = ListAuswertErgeebnis,
            };

            this.Ergeebnis = Ergeebnis;
        }
		static public ListViewAndControl<EntryT> ReadListView(
			UINodeInfoInTree listViewNode,
			Func<UINodeInfoInTree, IColumnHeader[], RectInt?, EntryT> callbackListEntryConstruct,
			ListEntryTrenungZeleTypEnum? inEntryTrenungZeleTyp = null)
		{
			var auswert = new SictAuswertGbsListViewport<EntryT>(listViewNode, callbackListEntryConstruct, inEntryTrenungZeleTyp);

			auswert.Read();

			return auswert.Result;
		}
        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,
            });
        }
示例#6
0
        static public ListViewAndControl <EntryT> AlsListView <EntryT>(
            this UINodeInfoInTree ListViewportAst,
            Func <UINodeInfoInTree, IColumnHeader[], RectInt?, EntryT> CallbackListEntryConstruct = null,
            ListEntryTrenungZeleTypEnum?InEntryTrenungZeleTyp = null)
            where EntryT : class, IListEntry
        {
            var Auswert = new SictAuswertGbsListViewport <EntryT>(
                ListViewportAst,
                CallbackListEntryConstruct,
                InEntryTrenungZeleTyp);

            Auswert.Read();

            return(Auswert?.Result);
        }
        override public void Berecne()
        {
            base.Berecne();

            if (null == Ergeebnis)
            {
                return;
            }

            ListViewportAst =
                AstMainContainerMain?.MatchingNodesFromSubtreeBreadthFirst(kandidaat => kandidaat?.PyObjTypNameIsScroll() ?? false)?.LargestNodeInSubtree();

            ListViewportAuswert = new SictAuswertGbsListViewport <IListEntry>(ListViewportAst, DroneEntryKonstrukt);

            ListViewportAuswert.Read();

            ErgeebnisScpez = new WindowDroneView(Ergeebnis)
            {
                ListView = ListViewportAuswert?.Result,
            };
        }
示例#8
0
        override public void Berecne()
        {
            base.Berecne();

            if (null == base.Ergeebnis)
            {
                return;
            }

            LeftSideAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstMainContainerMain, (kandidaat) =>
                    kandidaat.PyObjTypNameIsContainer() &&
                    "leftside".EqualsIgnoreCase(kandidaat.Name),
                    2, 1);

            LeftMainPanelAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    LeftSideAst, (kandidaat) =>
                    kandidaat.PyObjTypNameIsContainer() &&
                    "leftMainPanel".EqualsIgnoreCase(kandidaat.Name),
                    2, 1);

            LeftMainPanelScrollAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    LeftMainPanelAst, (kandidaat) =>
                    "Scroll".EqualsIgnoreCase(kandidaat.PyObjTypName),
                    3, 1);

            var FittingViewportAuswert = new SictAuswertGbsListViewport <IListEntry>(LeftMainPanelScrollAst, SictAuswertGbsListViewport <IListEntry> .ListEntryKonstruktSctandard);

            FittingViewportAuswert.Read();

            ErgeebnisWindowFittingMgmt = new WindowFittingMgmt(base.Ergeebnis)
            {
                FittingView = FittingViewportAuswert?.Result,
            };
        }
        override public void Berecne()
        {
            base.Berecne();

            if (null == base.Ergeebnis)
            {
                return;
            }

            ScrollAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstMainContainerMain, (kandidaat) =>
                    string.Equals("Scroll", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            ButtonGroupAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstMainContainer, (kandidaat) =>
                    string.Equals("ButtonGroup", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase),
                    3, 1);

            if (null == ScrollAst)
            {
                return;
            }

            ListAuswert = new SictAuswertGbsListViewport <IListEntry>(ScrollAst, SictAuswertGbsWindowSurveyScanView.SurveyScanViewEntryKonstrukt);

            ListAuswert.Read();

            ErgeebnisWindowSurveyScanView =
                new WindowSurveyScanView(base.Ergeebnis)
            {
                ListView = ListAuswert.Result,
            };
        }
        override public void Berecne()
        {
            base.Berecne();

            var AstMainContainer = base.AstMainContainer;

            if (null == AstMainContainer)
            {
                return;
            }

            if (!(true == AstMainContainer.VisibleIncludingInheritance))
            {
                return;
            }

            var mainContainerCenter = AstMainContainer.AsUIElementIfVisible().RegionCenter();

            var scrollNodesWithRegionCenter =
                AstMainContainer.MatchingNodesFromSubtreeBreadthFirst(node => node.PyObjTypNameIsScroll())
                ?.Select(node => (node, regionCenter: node.AsUIElementIfVisible().RegionCenter()))
                ?.ToList();

            //	Assume we find the container of the messages on the left from the center of the window.
            var ViewportSetMessageAst =
                scrollNodesWithRegionCenter
                ?.FirstOrDefault(nodeWithCenter => nodeWithCenter.regionCenter?.A < mainContainerCenter?.A).node;

            //	Assume we find the container of the participants on the right from the center of the window.
            var ViewportSetParticipantAst =
                scrollNodesWithRegionCenter
                ?.FirstOrDefault(nodeWithCenter => mainContainerCenter?.A < nodeWithCenter.regionCenter?.A).node;

            var FunkIsOther = new Func <IObjectIdInMemory, bool>(obj =>
                                                                 !(ViewportSetMessageAst?.EnthaltAstMitHerkunftAdrese(obj.Id) ?? false) &&
                                                                 !(ViewportSetParticipantAst?.EnthaltAstMitHerkunftAdrese(obj.Id) ?? false));

            var LabelOther =
                AstMainContainer.ExtraktMengeLabelString()
                ?.Where(label => FunkIsOther(label))
                ?.OrdnungLabel()
                ?.ToArray();

            if (null != ViewportSetMessageAst)
            {
                ViewportMessageAuswert = new SictAuswertGbsListViewport <IListEntry>(ViewportSetMessageAst, SictAuswertGbsListViewport <IListEntry> .ListEntryKonstruktSctandard);
                ViewportMessageAuswert.Read();
            }

            if (null != ViewportSetParticipantAst)
            {
                ViewportParticipantAuswert = new SictAuswertGbsListViewport <IChatParticipantEntry>(ViewportSetParticipantAst, ListEntryParticipantConstruct);
                ViewportParticipantAuswert.Read();
            }

            var MessageInputAst =
                AstMainContainer
                ?.MatchingNodesFromSubtreeBreadthFirst(node => node?.PyObjTypNameMatchesRegexPattern("EditPlainText") ?? false)
                ?.OrderByDescending(node => node.Grööse?.BetraagQuadriirt ?? -1)
                ?.FirstOrDefault();

            ErgeebnisScpezChatChannel = new WindowChatChannel(
                base.Ergeebnis)
            {
                MessageView     = ViewportMessageAuswert?.Result,
                ParticipantView = ViewportParticipantAuswert?.Result,
                MessageInput    = MessageInputAst?.AsUIElementInputText(),
            };
        }
        override public void Berecne()
        {
            base.Berecne();

            var BaseErgeebnis = base.Ergeebnis;

            if (null == BaseErgeebnis)
            {
                return;
            }

            var ListePfaadZuEntryInQuickbar =
                WindowNode.ListPathToNodeFromSubtreeBreadthFirst(k => Regex.Match(k.LabelText() ?? "", "iron charge L", RegexOptions.IgnoreCase).Success);

            var ListePfaadZuEntryInDetailsSellers =
                WindowNode.ListPathToNodeFromSubtreeBreadthFirst(k => Regex.Match(k.LabelText() ?? "", "motsu VII - Moon 6", RegexOptions.IgnoreCase).Success);

            var ListePfaadZuEntryInDetailsBuyers =
                WindowNode.ListPathToNodeFromSubtreeBreadthFirst(k => Regex.Match(k.LabelText() ?? "", "Moon 10 - CONCORD", RegexOptions.IgnoreCase).Success);


            var MengeTabControlAst =
                WindowNode?.MatchingNodesFromSubtreeBreadthFirst(k => Regex.Match(k.PyObjTypName ?? "", "TabGroup", RegexOptions.IgnoreCase).Success)?.ToArray();

            var MengeScrollAst =
                WindowNode?.MatchingNodesFromSubtreeBreadthFirst(k => k.PyObjTypNameIsScroll())?.ToArray();

            var LinxTabControlAst =
                MengeTabControlAst
                ?.OrderBy(k => k.LaagePlusVonParentErbeLaageA())
                ?.FirstOrDefault();

            var ReczTabControlAst =
                MengeTabControlAst
                ?.Except(LinxTabControlAst.Yield())
                ?.OrderByDescending(k => k.LaagePlusVonParentErbeLaageA())
                ?.FirstOrDefault();

            var QuickbarViewportAst =
                MengeScrollAst
                ?.OrderBy(k => k.LaagePlusVonParentErbeLaageA())
                ?.FirstOrDefault();

            var ReczDetailsContainerAst =
                AstMainContainerMain?.FirstMatchingNodeFromSubtreeBreadthFirst(k => k.PyObjTypNameIsContainer() && Regex.Match(k.Name ?? "", "details", RegexOptions.IgnoreCase).Success);

            var ReczDetailsMarketDataContainerAst =
                ReczDetailsContainerAst?.FirstMatchingNodeFromSubtreeBreadthFirst(k => Regex.Match(k.PyObjTypName ?? "", "MarketData", RegexOptions.IgnoreCase).Success);

            var SellersViewportAst =
                ReczDetailsMarketDataContainerAst?.FirstMatchingNodeFromSubtreeBreadthFirst(k => k.PyObjTypNameIsScroll() && Regex.Match(k.Name ?? "", "buy", RegexOptions.IgnoreCase).Success);

            var BuyersViewportAst =
                ReczDetailsMarketDataContainerAst?.FirstMatchingNodeFromSubtreeBreadthFirst(k => k.PyObjTypNameIsScroll() && Regex.Match(k.Name ?? "", "sell", RegexOptions.IgnoreCase).Success);

            var setOrdersNode =
                AstMainContainerMain?.MatchingNodesFromSubtreeBreadthFirst(k => Regex.Match(k.PyObjTypName ?? "", "MarketOrder", RegexOptions.IgnoreCase).Success);

            var MyOrdersAst =
                setOrdersNode?.FirstOrDefault(node => !(node?.Name?.RegexMatchSuccessIgnoreCase("corp") ?? false));

            var MyOrdersSellingScrollNode =
                MyOrdersAst?.FirstMatchingNodeFromSubtreeBreadthFirst(k => k.PyObjTypNameIsScroll() && k.NameMatchesRegexPatternIgnoreCase("sell"));

            var MyOrdersBuyingScrollNode =
                MyOrdersAst?.FirstMatchingNodeFromSubtreeBreadthFirst(k => k.PyObjTypNameIsScroll() && k.NameMatchesRegexPatternIgnoreCase("buy"));

            var LinxTabGroupAuswert = new SictAuswertGbsTabGroup(LinxTabControlAst);
            var ReczTabGroupAuswert = new SictAuswertGbsTabGroup(ReczTabControlAst);

            LinxTabGroupAuswert.Berecne();
            ReczTabGroupAuswert.Berecne();

            var QuickbarScrollAuswert = new SictAuswertGbsListViewport <IListEntry>(QuickbarViewportAst, SictAuswertGbsListViewport <IListEntry> .ListEntryKonstruktSctandard);

            QuickbarScrollAuswert.Read();

            var DetailsMarketDataSellersScrollAuswert = new SictAuswertGbsListViewport <IListEntry>(SellersViewportAst, SictAuswertGbsWindowRegionalMarket.MarketOrderEntryKonstrukt);
            var DetailsMarketDataBuyersScrollAuswert  = new SictAuswertGbsListViewport <IListEntry>(BuyersViewportAst, SictAuswertGbsWindowRegionalMarket.MarketOrderEntryKonstrukt);

            DetailsMarketDataSellersScrollAuswert.Read();
            DetailsMarketDataBuyersScrollAuswert.Read();

            var DetailsUIElement    = ReczDetailsContainerAst.AsUIElementIfVisible();
            var MarketDataUIElement = ReczDetailsMarketDataContainerAst.AsUIElementIfVisible();

            var MyOrdersContainer = MyOrdersAst.AlsContainer();

            var MyOrdersSellingScrollAuswert = new SictAuswertGbsListViewport <IListEntry>(MyOrdersSellingScrollNode, SictAuswertGbsWindowRegionalMarket.MarketOrderEntryKonstrukt);
            var MyOrdersBuyingScrollAuswert  = new SictAuswertGbsListViewport <IListEntry>(MyOrdersBuyingScrollNode, SictAuswertGbsWindowRegionalMarket.MarketOrderEntryKonstrukt);

            MyOrdersSellingScrollAuswert.Read();
            MyOrdersBuyingScrollAuswert.Read();

            var SelectedItemTypeDetailsMarketData = null == MarketDataUIElement ? null : new MarketItemTypeDetailsMarketData(MarketDataUIElement)
            {
                SellerView = DetailsMarketDataSellersScrollAuswert?.Result,
                BuyerView  = DetailsMarketDataBuyersScrollAuswert?.Result,
            };

            var MyOrders = null == MyOrdersContainer ? null :
                           new MarketMyOrders(MyOrdersContainer)
            {
                SellOrderView = MyOrdersSellingScrollAuswert?.Result,
                BuyOrderView  = MyOrdersBuyingScrollAuswert?.Result,
            };

            var SelectedItemTypeDetails = null == DetailsUIElement ? null : new MarketItemTypeDetails(DetailsUIElement)
            {
                MarketData = SelectedItemTypeDetailsMarketData
            };

            this.ErgeebnisScpez = new WindowRegionalMarket(BaseErgeebnis)
            {
                LeftTabGroup  = LinxTabGroupAuswert?.Ergeebnis,
                RightTabGroup = ReczTabGroupAuswert?.Ergeebnis,

                QuickbarView            = QuickbarScrollAuswert?.Result,
                SelectedItemTypeDetails = SelectedItemTypeDetails,

                MyOrders = MyOrders,
            };
        }
示例#12
0
        override public void Berecne()
        {
            base.Berecne();

            var AstMainContainer = base.AstMainContainer;

            if (null == AstMainContainer)
            {
                return;
            }

            if (!(true == AstMainContainer.VisibleIncludingInheritance))
            {
                return;
            }

            var SetScrollAst =
                AstMainContainer.MatchingNodesFromSubtreeBreadthFirst(ast => ast.PyObjTypNameIsScroll())
                ?.ToArray();

            var ViewportSetMessageAst =
                SetScrollAst
                ?.Where(ast => ast?.LaageInParentA < AstMainContainer?.LaageInParentA)
                ?.LargestNodeInSubtree();

            //	userlist isc auf recte saite.
            var ViewportSetParticipantAst =
                SetScrollAst
                ?.Where(ast => AstMainContainer?.LaageInParentA < ast?.LaageInParentA)
                ?.LargestNodeInSubtree();

            var FunkIsOther = new Func <IObjectIdInMemory, bool>(obj =>
                                                                 !(ViewportSetMessageAst?.EnthaltAstMitHerkunftAdrese(obj.Id) ?? false) &&
                                                                 !(ViewportSetParticipantAst?.EnthaltAstMitHerkunftAdrese(obj.Id) ?? false));

            var LabelOther =
                AstMainContainer.ExtraktMengeLabelString()
                ?.Where(label => FunkIsOther(label))
                ?.OrdnungLabel()
                ?.ToArray();

            if (null != ViewportSetMessageAst)
            {
                ViewportMessageAuswert = new SictAuswertGbsListViewport <IListEntry>(ViewportSetMessageAst, SictAuswertGbsListViewport <IListEntry> .ListEntryKonstruktSctandard);
                ViewportMessageAuswert.Read();
            }

            if (null != ViewportSetParticipantAst)
            {
                ViewportParticipantAuswert = new SictAuswertGbsListViewport <IChatParticipantEntry>(ViewportSetParticipantAst, ListEntryParticipantConstruct);
                ViewportParticipantAuswert.Read();
            }

            var MessageInputAst =
                AstMainContainer
                ?.MatchingNodesFromSubtreeBreadthFirst(node => node?.PyObjTypNameMatchesRegexPattern("EditPlainText") ?? false)
                ?.OrderByDescending(node => node.Grööse?.BetraagQuadriirt ?? -1)
                ?.FirstOrDefault();

            ErgeebnisScpezChatChannel = new WindowChatChannel(
                base.Ergeebnis)
            {
                MessageView     = ViewportMessageAuswert?.Result,
                ParticipantView = ViewportParticipantAuswert?.Result,
                MessageInput    = MessageInputAst?.AsUIElementInputText(),
            };
        }