static public ShipCargoSpaceTypeEnum?ActiveShipSelectedCargoSpaceType( this WindowInventory WindowInventory) => WindowInventory?.TreeEntryActiveShip()?.FromShipExtractSetCargoSpaceTypeAndTreeEntry() ?.Where(CargoTypeAndTreeEntry => WindowInventory?.SetLeftTreeEntrySelected()?.Contains(CargoTypeAndTreeEntry.Value) ?? false) ?.Select(CargoTypeAndTreeEntry => CargoTypeAndTreeEntry.Key) ?.CastToNullable() ?.FirstOrDefault();
static public IEnumerable <TreeViewEntry> SetLeftTreeEntrySelected( this WindowInventory WindowInventory) => WindowInventory?.LeftTreeListEntry?.Select(RootTreeEntry => RootTreeEntry?.EnumerateChildNodeTransitive()).ConcatNullable() ?.Where(TreeEntry => TreeEntry?.IsSelected ?? false);
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, }; }
static public TreeViewEntry TreeEntryActiveShip( this WindowInventory Inventory) => // Topmost entry which is a root and has a conforming Label. Inventory?.LeftTreeListEntry?.OrderByCenterVerticalDown() ?.FirstOrDefault(TreeEntry => 0 < TreeEntry?.LabelText?.ParseTreeEntryLabelShipNameAndType()?.Value?.Length);
public InventoryCollapseTreeExceptActiveShipParam(WindowInventory WindowInventory) { this.WindowInventory = WindowInventory; }