override public void Berecne() { base.Berecne(); var BaseErgeebnis = base.Ergeebnis; if (null == BaseErgeebnis) { return; } var SetTab = AstMainContainerMain?.ListPathToNodeFromSubtreeBreadthFirst(k => k.PyObjTypNameMatchesRegexPatternIgnoreCase("tab"))?.ToArray(); var SetScrollAstPfaad = AstMainContainerMain.ListPathToNodeFromSubtreeBreadthFirst(ast => ast.PyObjTypNameIsScroll()) ?.ToArray(); var SetScrollAst = AstMainContainerMain.MatchingNodesFromSubtreeBreadthFirst(ast => ast.PyObjTypNameIsScroll()) ?.ToArray(); var tInspektSearchStringAst = AstMainContainer?.FirstMatchingNodeFromSubtreeBreadthFirst(k => Regex.Match(k?.LabelText() ?? "", "search", RegexOptions.IgnoreCase).Success); var ListView = SetScrollAst?.FirstOrDefault()?.AlsListView <IListEntry>(SictAuswertGbsListViewport <IListEntry> .ListEntryKonstruktSctandard); ErgeebnisScpez = new WindowPeopleAndPlaces(BaseErgeebnis) { ListView = ListView, }; }
virtual public void Berecne() { var AstWindow = this.WindowNode; if (!(AstWindow?.VisibleIncludingInheritance ?? false)) { return; } if (!(true == AstWindow.ListChild?.Any((kandidaat) => (null == kandidaat ? null : kandidaat.VisibleIncludingInheritance) ?? false))) { /* * B:\Berict\Berict.Nuzer\[ZAK=2014.09.17.13.27.59,NB=25].Anwendung.Berict: * 2014.09.17 Beobactung Probleem: Window "LSCStack" mit Ast direkt selbsct sictbar aber kaine sictbaare Ast enthaltend und daher vermuutlic für Nuzer unsictbar. * Automaat versuuct diises leere Window zu scliise und blaibt damit in Sclaife hänge. * */ return; } AstMainContainer = AstWindow?.FirstMatchingNodeFromSubtreeBreadthFirst((kandidaat) => kandidaat.PyObjTypNameIsContainer() && string.Equals("__maincontainer", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase) , 2, 1); AstMainContainerHeaderButtons = AstMainContainer?.FirstMatchingNodeFromSubtreeBreadthFirst((kandidaat) => kandidaat.PyObjTypNameIsContainer() && string.Equals("headerButtons", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); AstMainContainerHeaderButtonsMengeKandidaatButton = AstMainContainerHeaderButtons?.MatchingNodesFromSubtreeBreadthFirst((kandidaat) => kandidaat.PyObjTypNameIsButton(), null, 2, 1); AstHeaderButtonClose = AstMainContainerHeaderButtonsMengeKandidaatButton?.SuuceFlacMengeAstFrüheste((kandidaat) => string.Equals("close", kandidaat.Name ?? kandidaat.Hint, StringComparison.InvariantCultureIgnoreCase), 2, 0); AstHeaderButtonMinimize = AstMainContainerHeaderButtonsMengeKandidaatButton?.SuuceFlacMengeAstFrüheste((kandidaat) => string.Equals("minimize", kandidaat.Name ?? kandidaat.Hint, StringComparison.InvariantCultureIgnoreCase), 2, 0); AstMainContainerMain = AstMainContainer?.FirstMatchingNodeFromSubtreeBreadthFirst((kandidaat) => kandidaat.PyObjTypNameIsContainer() && string.Equals("main", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); var container = AstWindow.AlsContainer(); if (null == container) { return; } AstMainContainerHeaderParent = AstMainContainer?.FirstMatchingNodeFromSubtreeBreadthFirst((kandidaat) => string.Equals("headerParent", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); AstMainContainerHeaderParentCaptionParent = AstMainContainerHeaderParent?.FirstMatchingNodeFromSubtreeBreadthFirst((kandidaat) => string.Equals("captionParent", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 3, 1); MainContainerHeaderParentCaptionParentLabelAst = AstMainContainerHeaderParentCaptionParent?.FirstMatchingNodeFromSubtreeBreadthFirst((kandidaat) => string.Equals("EveLabelSmall", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), 3, 1); MainContainerHeaderParentCaptionParentIcon = AstMainContainerHeaderParentCaptionParent?.FirstMatchingNodeFromSubtreeBreadthFirst((kandidaat) => (string.Equals("Icon", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) || string.Equals("EveIcon", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase)), 3, 1); HeaderCaptionText = MainContainerHeaderParentCaptionParentLabelAst?.SetText ?? AstWindow?.Caption; var HeaderButtonsVisible = AstMainContainerHeaderButtons?.VisibleIncludingInheritance; var HeaderButton = AstMainContainerHeaderButtons ?.MatchingNodesFromSubtreeBreadthFirst(k => (k?.VisibleIncludingInheritance ?? false) && k.PyObjTypNameMatchesRegex(HeaderButtonTypeRegex)) ?.Select(k => k.AlsSprite()) ?.WhereNotDefault() ?.ToArrayIfNotEmpty(); Ergeebnis = new Window(container) { isModal = AstWindow?.isModal, Caption = HeaderCaptionText, HeaderButtonsVisible = HeaderButtonsVisible, HeaderButton = HeaderButton, }; }
override public void Berecne() { base.Berecne(); var undockButtonNode = AstMainContainerMain?.FirstMatchingNodeFromSubtreeBreadthFirst(c => (c?.PyObjTypName?.RegexMatchSuccessIgnoreCase("UndockBtn") ?? false)); var undockButtonLabelNode = undockButtonNode?.LargestLabelInSubtree(); var undockButtonActionNode = undockButtonNode?.MatchingNodesFromSubtreeBreadthFirst(c => c?.PyObjAddress != undockButtonNode?.PyObjAddress && (c?.PyObjTypNameIsContainer() ?? false))?.LargestNodeInSubtree(); var serviceButtonContainerAst = AstMainContainer?.FirstMatchingNodeFromSubtreeBreadthFirst(k => k.PyObjTypNameIsContainer() && k.NameMatchesRegexPatternIgnoreCase("service.*Button")); var serviceButton = serviceButtonContainerAst?.MatchingNodesFromSubtreeBreadthFirst(k => k.PyObjTypNameIsButton()) ?.Select(buttonAst => buttonAst?.FirstMatchingNodeFromSubtreeBreadthFirst(spriteAst => spriteAst.PyObjTypNameIsSprite())) ?.WhereNotDefault() ?.Select(Extension.AlsSprite) ?.OrdnungLabel() ?.ToArray(); AgentsPanelAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AstMainContainerMain, (kandidaat) => kandidaat.PyObjTypNameIsContainer() && string.Equals("agentsPanel", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); AgentsPanelScrollAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AgentsPanelAst, (kandidaat) => string.Equals("Scroll", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), 2, 1); AgentsPanelScrollAuswert = new ScrollReader(AgentsPanelScrollAst); AgentsPanelScrollAuswert.Read(); AgentsPanelScrollContentAst = AgentsPanelScrollAuswert.ClipperContentNode; MengeAgentEntryHeaderKandidaatAst = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( AgentsPanelScrollContentAst, (kandidaat) => string.Equals("Header", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), null, 2, 1); MengeAgentEntryKandidaatAst = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( AgentsPanelScrollContentAst, (kandidaat) => string.Equals("AgentEntry", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), null, 2, 1); if (null != MengeAgentEntryHeaderKandidaatAst) { MengeAgentEntryHeaderLaageMitText = MengeAgentEntryHeaderKandidaatAst .Select((gbsAst) => { string Text = null; int Laage = -1; var GbsAstFläce = AuswertGbs.Glob.FläceAusGbsAstInfoMitVonParentErbe(gbsAst); if (null != GbsAstFläce?.Center()) { Laage = (int)GbsAstFläce.Value.Center().B; } var Label = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( gbsAst, (kandidaat) => string.Equals("EveLabelMedium", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), 2, 1); if (null != Label) { Text = Label.SetText; } return(new KeyValuePair <int, string>(Laage, Text)); }) .Where((kandidaat) => null != kandidaat.Value) .OrderBy((kandidaat) => kandidaat.Key) .ToArray(); } if (null != MengeAgentEntryKandidaatAst) { MengeAgentEntryKandidaatAuswert = MengeAgentEntryKandidaatAst .Select((gbsAst) => { var Auswert = new SictAuswertGbsAgentEntry(gbsAst); Auswert.Berecne(); return(Auswert); }).ToArray(); } if (null != MengeAgentEntryKandidaatAuswert && null != MengeAgentEntryHeaderLaageMitText) { foreach (var AgentEntryKandidaatAuswert in MengeAgentEntryKandidaatAuswert) { if (null == AgentEntryKandidaatAuswert.Ergeebnis) { continue; } var InGbsFläce = AgentEntryKandidaatAuswert.Ergeebnis.Region; if (null == InGbsFläce) { continue; } var Header = MengeAgentEntryHeaderLaageMitText .LastOrDefault((kandidaat) => kandidaat.Key < InGbsFläce.Center().B); } } ButtonUndockLabelText = undockButtonLabelNode?.LabelText(); var mengeAgentEntry = MengeAgentEntryKandidaatAuswert ?.Select((auswert) => auswert.Ergeebnis) ?.WhereNotDefault() ?.OrdnungLabel() ?.ToArray(); var agentEntryHeader = MengeAgentEntryHeaderKandidaatAst ?.Select(headerAst => headerAst?.LargestLabelInSubtree()?.AsUIElementTextIfTextNotEmpty()) ?.WhereNotDefault() ?.OrdnungLabel() ?.ToArray(); var undockButton = undockButtonActionNode?.AsUIElementIfVisible(); var unDocking = (null == ButtonUndockLabelText) ? (bool?)null : Regex.Match(ButtonUndockLabelText, "abort undock", RegexOptions.IgnoreCase).Success || Regex.Match(ButtonUndockLabelText, "undocking", RegexOptions.IgnoreCase).Success; var aboveServicesLabel = base.Ergeebnis?.LabelText ?.Where(k => k.Region.Center().B < undockButtonNode?.LaagePlusVonParentErbeLaageB() + undockButtonNode?.GrööseB) ?.ToArray(); var Ergeebnis = new WindowStation(base.Ergeebnis) { AboveServicesLabel = aboveServicesLabel, UndockButton = undockButton, ServiceButton = serviceButton, AgentEntry = mengeAgentEntry, AgentEntryHeader = agentEntryHeader, }; this.ErgeebnisScpez = Ergeebnis; }