Esempio n. 1
0
        new static public WindowOverView BerecneFürWindowAst(
            UINodeInfoInTree windowNode)
        {
            if (null == windowNode)
            {
                return(null);
            }

            var windowAuswert = new SictAuswertGbsWindowOverview(windowNode);

            windowAuswert.Berecne();

            return(windowAuswert.ErgeebnisScpez);
        }
        public void Berecne()
        {
            var WindowOverviewZaile = this.WindowOverviewZaile;

            if (null == WindowOverviewZaile)
            {
                return;
            }

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

            var ZaileMengeChild = WindowOverviewZaile.ListChild;

            if (null == ZaileMengeChild)
            {
                return;
            }

            var ListeLabel =
                ZaileMengeChild
                .Where((Kandidaat) =>
            {
                if (null == Kandidaat)
                {
                    return(false);
                }

                var KandidaatPyObjTypName = Kandidaat.PyObjTypName;

                return(string.Equals("OverviewLabel", KandidaatPyObjTypName, StringComparison.InvariantCultureIgnoreCase));
            })
                .Where((Kandidaat) => Kandidaat.LaageInParent.HasValue)
                .OrderBy((Kandidaat) => Kandidaat.LaageInParent.Value.A)
                .ToArray();

            /*
             * 2013.10.20
             * Mit Patch 2013.10.20 Rubikon Änderung Kandidaat.PyObjTypName: "PyFill" -> "Fill"
             * */
            MengeFillAst =
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    WindowOverviewZaile,
                    (Kandidaat) =>
                    (string.Equals("PyFill", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) ||
                     string.Equals("Fill", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase)) &&
                    true == Kandidaat.VisibleIncludingInheritance &&
                    null != Kandidaat.Color,
                    null, 2, 1);

            AstIconContainer =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    WindowOverviewZaile, (Kandidaat) => string.Equals(MainIconPyTypeName, Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase), 2);

            RightAlignedIconContainerAst =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    WindowOverviewZaile, (Kandidaat) => string.Equals("rightAlignedIconContainer", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2);

            RightAlignedIconContainerMengeIconAst =
                Optimat.EveOnline.AuswertGbs.Extension.MatchingNodesFromSubtreeBreadthFirst(
                    RightAlignedIconContainerAst, (Kandidaat) =>
                    (string.Equals("Icon", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase) ||
                     string.Equals("EveIcon", Kandidaat.PyObjTypName, StringComparison.InvariantCultureIgnoreCase)),
                    null, 2, 1);

            /*
             *
             * 2014.04.12
             *
             * "EVE Online: Rubicon 1.4.4 Released on Tuesday, May 13th, 2014"
             *
             * AstIconContainerIconMain =
             *      Optimat.EveOnline.AuswertGbs.Extension.SuuceFlacMengeAstFrüheste(
             *      AstIconContainer, (Kandidaat) => string.Equals("mainIcon", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2);
             *
             * */

            AstIconContainerIconMain =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstIconContainer, (Kandidaat) => string.Equals("iconSprite", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2);

            AstIconContainerIconTargetingIndicator =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstIconContainer, (Kandidaat) => string.Equals("targeting", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2);

            AstIconContainerIconTargetedByMeIndicator =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstIconContainer, (Kandidaat) => string.Equals("targetedByMeIndicator", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2);

            AstIconContainerIconMyActiveTargetIndicator =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstIconContainer, (Kandidaat) => string.Equals("myActiveTargetIndicator", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2);

            AstIconContainerIconAttackingMe =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstIconContainer, (Kandidaat) => string.Equals("attackingMe", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2);

            AstIconContainerIconHostile =
                Optimat.EveOnline.AuswertGbs.Extension.FirstMatchingNodeFromSubtreeBreadthFirst(
                    AstIconContainer, (Kandidaat) => string.Equals("hostile", Kandidaat.Name, StringComparison.InvariantCultureIgnoreCase), 2);

            var ListeZeleGbsAstUndScpalteTitel =
                SictAuswertGbsWindowOverview.MengeGbsAstZuScpalteIdentBerecneAusMengeGbsAstLaageUndMengeScpalteTitelUndLaage(
                    MengeSortHeaderTitelUndLaage,
                    ListeLabel);

            var ListeZeleBescriftungUndScpalteTitel =
                ListeZeleGbsAstUndScpalteTitel?.Select((ZeleGbsAstUndScpalteTitel) => new KeyValuePair <string, string>(
                                                           ZeleGbsAstUndScpalteTitel.Key.Text, ZeleGbsAstUndScpalteTitel.Value))
                ?.ToArray();

            Int64?    IconMainTextureIdent = null;
            ColorORGB IconMainColor        = null;

            if (null != AstIconContainerIconMain)
            {
                IconMainTextureIdent = AstIconContainerIconMain.TextureIdent0;
                IconMainColor        = ColorORGB.VonVal(AstIconContainerIconMain.Color);
            }

            Int64[] RightAlignedIconMengeTextureIdent = null;

            if (null != RightAlignedIconContainerMengeIconAst)
            {
                RightAlignedIconMengeTextureIdent =
                    RightAlignedIconContainerMengeIconAst
                    .Select((IconAst) => IconAst.TextureIdent0)
                    .Where((Kandidaat) => Kandidaat.HasValue)
                    .Select((Kandidaat) => Kandidaat.Value)
                    .ToArray();
            }
        }