Beispiel #1
0
        virtual public void Berecne()
        {
            if (null == PanelGroupAst)
            {
                return;
            }

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

            var ContainerMengeEntryName = this.ContainerMengeEntryName;

            ContainerMengeEntryAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    PanelGroupAst, (Kandidaat) =>
                    Kandidaat.PyObjTypNameIsContainer() &&
                    string.Equals(ContainerMengeEntryName, Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    2, 1);

            var Ergeebnis = new PanelGroup(PanelGroupAst.AlsContainer());

            this.Ergeebnis = Ergeebnis;
        }
		static public IColumnHeader Read(UINodeInfoInTree ColumnHeaderAst)
		{
			if (!(ColumnHeaderAst?.VisibleIncludingInheritance ?? false))
				return null;

			var container = ColumnHeaderAst?.AlsContainer(
				treatIconAsSprite: true);

			if (null == container)
				return null;

			return new ColumnHeader(container);
		}
Beispiel #3
0
        static public IInSpaceBracket AsInSpaceBracket(this UINodeInfoInTree node)
        {
            var container = node?.AlsContainer();

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

            return(new InSpaceBracket(container)
            {
                Name = node.Name,
            });
        }
        static public IShipUiTimer AlsTimer(UINodeInfoInTree node)
        {
            var container = node?.AlsContainer();

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

            return(new ShipUiTimer(container)
            {
                Name = node?.Name,
            });
        }
Beispiel #5
0
        static public MenuEntry MenuEntry(
            this UINodeInfoInTree menuEntryAst,
            RectInt regionConstraint,
            bool?highlight = null)
        {
            var container = menuEntryAst.AlsContainer(regionConstraint: regionConstraint);

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

            return(new MenuEntry(container)
            {
                HighlightVisible = highlight,
            });
        }
Beispiel #6
0
        virtual public void Berecne()
        {
            if (null == InfoPanelAst)
            {
                return;
            }

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

            TopContAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    InfoPanelAst, (Kandidaat) =>
                    Kandidaat.PyObjTypNameIsContainer() &&
                    string.Equals("topCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    3, 1);

            HeaderBtnContAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    TopContAst, (Kandidaat) =>
                    Kandidaat.PyObjTypNameIsContainer() &&
                    string.Equals("headerBtnCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    3, 1);

            HeaderBtnContExpandButtonAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    HeaderBtnContAst, (Kandidaat) =>
                    string.Equals("Sprite", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase),
                    3, 1);

            HeaderContAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    TopContAst, (Kandidaat) =>
                    Kandidaat.PyObjTypNameIsContainer() &&
                    string.Equals("headerCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    3, 1);

            MainContAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    InfoPanelAst, (Kandidaat) =>
                    string.Equals("ContainerAutoSize", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) &&
                    string.Equals("mainCont", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase),
                    3, 1);

            var ExpandedContent = MainContAst.AlsContainer();

            var ExpandedListLabelString =
                MainContAst?.ExtraktMengeLabelString()?.OrdnungLabel()?.ToArray();

            bool?      MainContSictbar    = null;
            IUIElement ExpandToggleButton = null;

            if (null != MainContAst)
            {
                MainContSictbar = MainContAst.VisibleIncludingInheritance;
            }

            if (null != HeaderBtnContExpandButtonAst)
            {
                ExpandToggleButton = HeaderBtnContExpandButtonAst.AlsSprite();
            }

            //	var HeaderLabel = TopContAst.GröösteLabel().AlsUIElementLabelStringFalsLabelString();
            var HeaderLabel = TopContAst?.ExtraktMengeLabelString()?.Grööste();

            var HeaderContent = TopContAst?.AlsContainer();

            var Ergeebnis = new InfoPanel(InfoPanelAst.AlsContainer())
            {
                IsExpanded         = MainContSictbar,
                ExpandToggleButton = ExpandToggleButton,
                ExpandedContent    = ExpandedContent,
                HeaderContent      = HeaderContent,
            };

            this.Ergeebnis = Ergeebnis;
        }
		virtual public void Berecne()
		{
			var Container = EntryAst.AlsContainer(regionConstraint: RegionConstraint);

			if (null == Container)
				return;

			LabelAst = EntryAst.LargestLabelInSubtree();

			FläceFürMenuAst = LabelAst;

			LabelGrenzeLinx = (int?)LabelAst.LaagePlusVonParentErbeLaageA();

			/*
			 * 2014.11.08
			 * 
			 * Änderung für Release "Rhea":
			 * "PyObjTypName": "GlowSprite"
			 * 
			ExpanderAst =
				EntryAst.SuuceFlacMengeAstFrüheste(
				(Kandidaat) =>
					AuswertGbs.Glob.GbsAstTypeIstEveIcon(Kandidaat) &&
					Regex.Match(Kandidaat.Name	?? "", "expander", RegexOptions.IgnoreCase).Success);
			 * */
			ExpanderAst =
					EntryAst.FirstMatchingNodeFromSubtreeBreadthFirst(
					(kandidaat) =>
						(AuswertGbs.Glob.GbsAstTypeIstEveIcon(kandidaat) ||
						AuswertGbs.Glob.GbsAstTypeIstSprite(kandidaat)) &&
						Regex.Match(kandidaat.Name ?? "", "expander", RegexOptions.IgnoreCase).Success);

			IstGroup = ((null == ExpanderAst) ? null : ExpanderAst.VisibleIncludingInheritance) ?? false;

			var MengeIconOderSpriteAst =
				EntryAst.MatchingNodesFromSubtreeBreadthFirst(
				(kandidaat) =>
					(AuswertGbs.Glob.GbsAstTypeIstEveIcon(kandidaat) ||
					Regex.Match(kandidaat.PyObjTypName ?? "", "sprite", RegexOptions.IgnoreCase).Success) &&
					(kandidaat.VisibleIncludingInheritance ?? false));

			IstItem =
				(!MengeIconOderSpriteAst.IsNullOrEmpty() || null != LabelAst) &&
				!(IstGroup ?? false);

			var MengeIconOderSpriteGrenzeLinx =
				MengeIconOderSpriteAst
				?.Select((iconAst) => iconAst.LaagePlusVonParentErbeLaageA())
				?.Where((kandidaat) => kandidaat.HasValue)
				?.Select((iconAstGrenzeLinx) => iconAstGrenzeLinx.Value)
				?.ToArray();

			if (!MengeIconOderSpriteGrenzeLinx.IsNullOrEmpty())
				InhaltGrenzeLinx = (int)Math.Min(InhaltGrenzeLinx ?? int.MaxValue, MengeIconOderSpriteGrenzeLinx.Min());

			if (LabelGrenzeLinx.HasValue)
				InhaltGrenzeLinx = (int)Math.Min(InhaltGrenzeLinx ?? int.MaxValue, LabelGrenzeLinx.Value);

			var ListEntryInZeleTrenung = this.ListEntryInZeleTrenung();

			if (ListEntryTrenungZeleTypEnum.Ast == ListEntryInZeleTrenung)
			{
				//	genuzt z.B. für "OverviewScrollEntry".
				var EntryListeZeleLabel =
					EntryAst.ExtraktMengeLabelString()?.ToArray();

				ListeZuHeaderZeleString =
					EntryListeZeleLabel
					?.Select(zeleLabel => new KeyValuePair<IColumnHeader, string>(
						HeaderBestFit(zeleLabel, ListeColumnHeader),
						zeleLabel?.Text))
					?.ToArray();
			}
			else
			{
				Label = LabelAst.AsUIElementTextIfTextNotEmpty();

				var Bescriftung = Label?.Text;

				if (null != Bescriftung)
				{
					if (!(IstGroup ?? false))
					{
						ItemListeZeleTextMitFormat = Bescriftung.Split(new string[] { "<t>" }, StringSplitOptions.None);

						var ItemListeZeleText =
							ItemListeZeleTextMitFormat
							?.Select((zeleTextMitFormat) => ZeleTextAusZeleTextMitFormat(zeleTextMitFormat))
							?.ToArray();

						ListeZuHeaderZeleString =
							ItemListeZeleText
							?.Select((zeleText, index) => new KeyValuePair<IColumnHeader, string>(
								ListeColumnHeader?.FirstOrDefault(kandidaat => kandidaat.ColumnIndex == index),
								zeleText))
							?.ToArray();
					}
				}
			}

			var backgroundColorNode =
				EntryAst?.FirstMatchingNodeFromSubtreeBreadthFirst(node =>
					(node?.PyObjTypNameMatchesRegexPatternIgnoreCase("fill") ?? false) &&
					(node?.Name?.RegexMatchSuccessIgnoreCase("bgColor") ?? false));

			var ListBackgroundColor =
				EntryAst?.BackgroundList
				?.Select(background => background.Color.AlsColorORGB())
				.ConcatNullable(new[] { backgroundColorNode?.Color.AlsColorORGB() })
				?.WhereNotDefault()
				?.ToArrayIfNotEmpty();

			var SetSprite =
				EntryAst.SetSpriteFromChildren()
				?.ToArrayIfNotEmpty();

			ErgeebnisListEntry = new ListEntry(Container)
			{
				ContentBoundLeft = InhaltGrenzeLinx,

				ListColumnCellLabel = ListeZuHeaderZeleString,

				GroupExpander = ExpanderAst?.AsUIElementIfVisible(),

				IsGroup = IstGroup,
				IsExpanded = ExpanderSpriteIsExpanded(ExpanderAst),
				IsSelected = EntryAst.isSelected,

				ListBackgroundColor = ListBackgroundColor,
				SetSprite = SetSprite,
			};
		}