public void Berecne() { var TreeViewEntryAst = this.TreeViewEntryAst; if (null == TreeViewEntryAst) { return; } TopContAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( TreeViewEntryAst, (Kandidaat) => Kandidaat.PyObjTypNameIsContainer() && string.Equals("topCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); TopContLabelAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( TopContAst, (Kandidaat) => AuswertGbs.Glob.GbsAstTypeIstLabel(Kandidaat)); ChildContAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( TreeViewEntryAst, (Kandidaat) => Kandidaat.PyObjTypNameIsContainer() && string.Equals("childCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); MengeChildAst = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( ChildContAst, (Kandidaat) => Regex.Match(Kandidaat.PyObjTypName ?? "", "TreeViewEntry", RegexOptions.IgnoreCase).Success, null, 2, 1); TopContIconAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( TopContAst, (Kandidaat) => (string.Equals("Icon", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) || string.Equals("EveIcon", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase)), 2, 1); var TopContSpacerAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( TopContAst, (Kandidaat) => Kandidaat.PyObjTypNameIsContainer() && string.Equals("spacerCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); var ExpandCollapseToggleFläce = TopContSpacerAst.AsUIElementIfVisible(); LabelAst = TopContLabelAst; if (null != MengeChildAst) { MengeChildAuswert = MengeChildAst .Select((Ast) => { var Auswert = new SictAuswertTreeViewEntry(Ast); Auswert.Berecne(); return(Auswert); }).ToArray(); } IUIElement TopContFläce = (null == TopContAst) ? null : new UIElement( TopContAst.AsUIElementIfVisible()); var TopContLabel = (null == TopContLabelAst) ? null : new UIElementText( TopContLabelAst.AsUIElementIfVisible(), TopContLabelAst.LabelText()); var TopContIconTyp = (null == TopContIconAst) ? null : TopContIconAst.TextureIdent0; var TopContIconColor = (null == TopContIconAst) ? null : TopContIconAst.Color; var LabelText = (null == LabelAst) ? null : LabelAst.LabelText(); var MengeChild = (null == MengeChildAuswert) ? null : MengeChildAuswert .Select((Auswert) => Auswert.Ergeebnis) .Where((Kandidaat) => null != Kandidaat) .ToArray(); var Ergeebnis = new TreeViewEntry(TreeViewEntryAst.AlsContainer()) { ExpandToggleButton = ExpandCollapseToggleFläce, Child = MengeChild, IsSelected = TreeViewEntryAst?.isSelected, }; this.Ergeebnis = Ergeebnis; }
override public void Berecne() { base.Berecne(); if (null == base.Ergeebnis) { return; } AstMainContainerMainDividerCont = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AstMainContainerMain, (kandidaat) => "dividerCont".EqualsIgnoreCase(kandidaat.Name), 2, 1); /* * 2013.10.20 * Scainbar mit Patch 2013.10.20 Rubicon Änderung von "ScrollContainerCore" naac "ScrollContainer" * */ LinxScrollContainerTreeAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AstMainContainerMainDividerCont, (kandidaat) => ("ScrollContainerCore".EqualsIgnoreCase(kandidaat.PyObjTypName) || "ScrollContainer".EqualsIgnoreCase(kandidaat.PyObjTypName)) && "tree".EqualsIgnoreCase(kandidaat.Name), 3, 1); LinxTreeBehältnisAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( LinxScrollContainerTreeAst, (kandidaat) => "ContainerAutoSize".EqualsIgnoreCase(kandidaat.PyObjTypName) && "mainCont".EqualsIgnoreCase(kandidaat.Name), 3, 1); /* * 2014.06.21 * * Anpasung an 2014.07.21 Crius: * Sictung Ast mit PyObjTypName = "TreeViewEntryInventory" * * LinxTreeBehältnisListeEntryAst = * Optimat.EveOnline.AuswertGbs.Extension.SuuceFlacMengeAst( * LinxTreeBehältnisAst, (Kandidaat) => string.Equals("TreeViewEntry", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), * null, 2, 1, true); * */ LinxTreeBehältnisListeEntryAst = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( LinxTreeBehältnisAst, (kandidaat) => Regex.Match(kandidaat.PyObjTypName ?? "", "TreeViewEntry", RegexOptions.IgnoreCase).Success, null, 2, 1, true); var LinxTreeContainerScrollAst = LinxScrollContainerTreeAst; // 2015.09.07: Name = "clipCont" var ClipperAst = LinxTreeContainerScrollAst ?.FirstMatchingNodeFromSubtreeBreadthFirst(k => k.PyObjTypNameIsContainer() && k.NameMatchesRegexPatternIgnoreCase("clip")); // 2015.09.07: Name = "handleCont" var ScrollHandleBoundAst = LinxTreeContainerScrollAst ?.FirstMatchingNodeFromSubtreeBreadthFirst(k => k.PyObjTypNameIsContainer() && k.NameMatchesRegexPatternIgnoreCase("handle")); // 2015.09.07: PyObjTypName = "ScrollHandle" var ScrollHandleAst = LinxTreeContainerScrollAst ?.FirstMatchingNodeFromSubtreeBreadthFirst(k => k.PyObjTypNameMatchesRegexPatternIgnoreCase("Scrollhandle")); var LinxTreeViewScroll = ((ClipperAst?.VisibleIncludingInheritance ?? false) || (ScrollHandleBoundAst?.VisibleIncludingInheritance ?? false) || (ScrollHandleAst?.VisibleIncludingInheritance ?? false)) ? new Scroll(LinxTreeContainerScrollAst.AsUIElementIfVisible()) { Clipper = ClipperAst?.AsUIElementIfVisible(), ScrollHandleBound = ScrollHandleBoundAst?.AsUIElementIfVisible(), ScrollHandle = ScrollHandleAst?.AsUIElementIfVisible(), } : null; LinxTreeBehältnisListeEntryAuswert = LinxTreeBehältnisListeEntryAst ?.Select((ast) => { var Auswert = new SictAuswertTreeViewEntry(ast); Auswert.Berecne(); return(Auswert); }).ToArray(); AstMainContainerMainRightCont = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AstMainContainerMain, (kandidaat) => string.Equals("rightCont", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); AstMainContainerMainRightContTopRight1 = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AstMainContainerMainRightCont, (kandidaat) => string.Equals("topRightcont1", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2, 1); AstMainContainerMainRightContTopRight1SubCaptionCont = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AstMainContainerMainRightContTopRight1, (kandidaat) => string.Equals("subCaptionCont", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 3, 1); AstMainContainerMainRightContTopRight1SubCaptionLabel = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AstMainContainerMainRightContTopRight1SubCaptionCont, (kandidaat) => string.Equals("Label", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), 3, 1); AuswaalReczInventorySictAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AstMainContainerMainRightCont, (kandidaat) => string.Equals("InvContViewBtns", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase) || Regex.Match(kandidaat.PyObjTypName ?? "", "InvContViewBtns", RegexOptions.IgnoreCase).Success, 6, 1); AuswaalReczInventorySictMengeButtonAst = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( AuswaalReczInventorySictAst, (kandidaat) => string.Equals("ButtonIcon", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), null, 3, 1, true); AuswaalReczInventorySictMengeButton = AuswaalReczInventorySictMengeButtonAst ?.Select((ast) => ast.AsUIElementIfVisible()) ?.ToArray(); var SelectedRightControlViewButton = AuswaalReczInventorySictMengeButtonAst ?.Select(ast => ast?.MengeChildAstTransitiiveHüle()?.OfType <UINodeInfoInTree>().GröösteSpriteAst()?.AlsSprite()) ?.WhereNotDefault() ?.OrdnungLabel() ?.ToArray(); AuswaalReczInventoryAst = AstMainContainerMainRightCont?.MatchingNodesFromSubtreeBreadthFirst(c => c != AstMainContainerMainRightCont && null != c?.FirstMatchingNodeFromSubtreeBreadthFirst(candidateScroll => candidateScroll?.PyObjTypNameIsScroll() ?? false, 3)) ?.LargestNodeInSubtree(); AuswaalReczTop2Ast = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AstMainContainerMainRightCont, (kandidaat) => kandidaat.PyObjTypNameIsContainer() && string.Equals("topRightCont2", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 1, 1); AuswaalReczCapacityGaugeAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AuswaalReczTop2Ast, (kandidaat) => string.Equals("InvContCapacityGauge", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), 1, 1); AuswaalReczCapacityGaugeLabelAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AuswaalReczCapacityGaugeAst, (kandidaat) => string.Equals("EveLabelSmall", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) && string.Equals("capacityText", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 1, 1); AuswaalReczFilterEditAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AuswaalReczTop2Ast, (kandidaat) => string.Equals("SinglelineEdit", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), 3, 1); AuswaalReczFilterEditButtonClearAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AuswaalReczFilterEditAst, (kandidaat) => string.Equals("ButtonIcon", kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), 3, 1); AuswaalReczFilterEditLabelAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AuswaalReczFilterEditAst, (kandidaat) => string.Equals("edittext", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase) && AuswertGbs.Glob.GbsAstTypeIstLabel(kandidaat), 3, 1); AuswaalReczFilterEditAingaabeTextZiilAst = (null == AuswaalReczFilterEditLabelAst) ? null : Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AuswaalReczFilterEditAst, (kandidaat) => kandidaat.PyObjTypNameIsContainer() && null != Optimat.EveOnline.AuswertGbs.Extension.FirstNodeWithPyObjAddressFromSubtreeBreadthFirst(kandidaat, AuswaalReczFilterEditLabelAst.PyObjAddress, 3), 3, 1); RightContBottomAst = Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst( AstMainContainerMainRightCont, (kandidaat) => kandidaat.PyObjTypNameIsContainer() && string.Equals("bottomRightcont", kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 3, 1); var RightContBottomMengeLabelAst = Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst( RightContBottomAst, (kandidaat) => AuswertGbs.Glob.GbsAstTypeIstLabel(kandidaat) && true == kandidaat.VisibleIncludingInheritance); if (null != RightContBottomMengeLabelAst) { foreach (var RightContBottomLabelAst in RightContBottomMengeLabelAst) { var LabelText = RightContBottomLabelAst.LabelText(); if (null == LabelText) { continue; } var LabelTextMiinusXmlTag = LabelText.RemoveXmlTag(); int?FilteredAnzaal; var ItemAnzaal = AusBottomRightNumItemsLabelTextExtraktItemAnzaal(LabelTextMiinusXmlTag, out FilteredAnzaal); if (ItemAnzaal.HasValue) { RightContNumItemsLabelAst = RightContBottomLabelAst; RightContNumItemsLabelText = LabelText; AuswaalReczMengeItemAbgebildetAnzaal = ItemAnzaal; AuswaalReczMengeItemFilteredAnzaal = FilteredAnzaal; } } } if (null != AuswaalReczCapacityGaugeLabelAst) { AuswaalReczCapacityGaugeLabelText = AuswaalReczCapacityGaugeLabelAst.LabelText(); } if (null != AuswaalReczInventoryAst) { AuswaalReczInventoryAuswert = new SictAuswertGbsInventory(AuswaalReczInventoryAst); AuswaalReczInventoryAuswert.Berecne(); } if (null != AstMainContainerMainRightContTopRight1SubCaptionLabel) { AuswaalReczObjektPfaadSictString = AstMainContainerMainRightContTopRight1SubCaptionLabel.SetText.RemoveXmlTag(); } var LinxTreeListeEntry = LinxTreeBehältnisListeEntryAuswert ?.Select(auswert => auswert.Ergeebnis) ?.WhereNotDefault() ?.ToArray(); var AuswaalReczInventory = AuswaalReczInventoryAuswert?.Ergeebnis; var AuswaalReczFilterAingaabeTextZiil = AuswaalReczFilterEditAingaabeTextZiilAst.AsUIElementIfVisible(); var AuswaalReczFilterButtonClear = AuswaalReczFilterEditButtonClearAst.AsUIElementIfVisible(); var AuswaalReczFilterText = (null == AuswaalReczFilterEditLabelAst) ? null : AuswaalReczFilterEditLabelAst.LabelText(); var AuswaalReczObjektPfaadListeAst = AuswaalReczObjektPfaadListeAstBerecneAusPfaadSictString(AuswaalReczObjektPfaadSictString); var AuswaalReczFilterTextBox = null == AuswaalReczFilterAingaabeTextZiil ? null : new UIElementInputText(AuswaalReczFilterAingaabeTextZiil) { Text = AuswaalReczFilterText }; ErgeebnisScpez = new WindowInventory(base.Ergeebnis) { LeftTreeListEntry = LinxTreeListeEntry, LeftTreeViewportScroll = LinxTreeViewScroll, SelectedRightInventoryPathLabel = AstMainContainerMainRightContTopRight1SubCaptionLabel.AsUIElementTextIfTextNotEmpty(), SelectedRightInventory = AuswaalReczInventory, SelectedRightInventoryCapacity = AuswaalReczCapacityGaugeAst?.ExtraktMengeLabelString()?.FirstOrDefault(), SelectedRightControlViewButton = SelectedRightControlViewButton, SelectedRightFilterTextBox = AuswaalReczFilterTextBox, SelectedRightFilterButtonClear = AuswaalReczFilterButtonClear, SelectedRightItemDisplayedCount = AuswaalReczMengeItemAbgebildetAnzaal, SelectedRightItemFilteredCount = AuswaalReczMengeItemFilteredAnzaal, }; }