예제 #1
0
        static public void LabelTaileBerecne(
            this    TreeViewEntry Entry)
        {
            string LabelTextTailObjektName     = null;
            string LabelTextTailObjektDistance = null;
            Int64? ObjektDistance = null;

            try
            {
                var LabelText = Entry.LabelText;

                if (null == LabelText)
                {
                    return;
                }

                var LabelTextMatch = Regex.Match(LabelText, TreeViewEntryLabelTextRegexPattern);

                if (!LabelTextMatch.Success)
                {
                    return;
                }

                LabelTextTailObjektName     = Bib3.Glob.TrimNullable(LabelTextMatch.Groups[1].Value);
                LabelTextTailObjektDistance = Bib3.Glob.TrimNullable(LabelTextMatch.Groups[3].Value);
            }
            finally
            {
                ObjektDistance = TempAuswertGbs.Extension.AusDistanceSictStringAbbildGanzzaalDurcMeeterScrankeMax(LabelTextTailObjektDistance);

                Entry.LabelTextTailObjektName     = LabelTextTailObjektName;
                Entry.LabelTextTailObjektDistance = LabelTextTailObjektDistance;
                Entry.ObjektDistance = ObjektDistance;
            }
        }
예제 #2
0
 static public ShipCargoSpaceTypeEnum?CargoSpaceTypeOfTreeEntry(
     this TreeViewEntry EntryShip,
     TreeViewEntry EntryCargoSpace) =>
 FromShipExtractSetCargoSpaceTypeAndTreeEntry(EntryShip)
 ?.Where(CargoShipTypeAndTreeEntry => CargoShipTypeAndTreeEntry.Value == EntryCargoSpace)
 ?.Select(CargoShipTypeAndTreeEntry => CargoShipTypeAndTreeEntry.Key)
 ?.CastToNullable()
 ?.FirstOrDefault();
예제 #3
0
        public static PortingOption GetMergeType(Window w, TreeViewEntry sourceItem, TreeViewEntry targetItem)
        {
            TreeMergeDialog tmd = new TreeMergeDialog(sourceItem.Entry, targetItem.Entry);

            tmd.Owner = w;
            tmd.ShowDialog(); //modal

            return(tmd.PortingOptionChosen);
        }
예제 #4
0
 static public IEnumerable <KeyValuePair <ShipCargoSpaceTypeEnum, TreeViewEntry> > FromShipExtractSetCargoSpaceTypeAndTreeEntry(
     this TreeViewEntry ShipTreeEntry) =>
 new[] { new KeyValuePair <ShipCargoSpaceTypeEnum, TreeViewEntry>(ShipCargoSpaceTypeEnum.General, ShipTreeEntry) }
 .ConcatNullable(InventoryCargoTypeAndSetLabel?.Select(CargoTypeAndSetLabel =>
                                                       new KeyValuePair <ShipCargoSpaceTypeEnum, TreeViewEntry>(
                                                           CargoTypeAndSetLabel.Key,
                                                           ShipTreeEntry?.EnumerateChildNodeTransitive()
                                                           ?.FirstOrDefault(Node => Node?.LabelText?.FromIventoryLabelParseShipCargoSpaceType() == CargoTypeAndSetLabel.Key))))
 ?.Where(TreeEntryForCargoSpaceType => null != TreeEntryForCargoSpaceType.Value);
예제 #5
0
        public static EntryImporter.PortingOption GetMergeType(Window w, TreeViewEntry sourceItem, TreeViewEntry targetItem, MEGame targetGame)
        {
            TreeMergeDialog tmd = new TreeMergeDialog(sourceItem.Entry, targetItem.Entry, targetGame)
            {
                Owner = w
            };

            tmd.ShowDialog(); //modal

            return(tmd.PortingOptionChosen);
        }
예제 #6
0
        private void GetNpcTreeItemFiles(NpcCollection npcCollection, string path, TreeNodeEntry node)
        {
            WowEnvironment env = Engine.Instance.WowEnvironment;

            env.ClearOwnCascFiles();
            foreach (Npc npc in npcCollection)
            {
                env.AddOwnCascFile(npc.Path);
            }
            env.FinishOwnCascFiles();

            TreeViewFiles.Clear();
            TreeNodeEntry treeNode = TreeViewEntry.TraverseAllUseOwn(path, "*", node);

            for (int i = 0; i < treeNode.NodeEntrys.Count; i++)
            {
                TreeViewFiles.Add(treeNode.NodeEntrys[i]);
            }
        }
        private void GetSpellTreeItemFiles(SpellVisualEffectCollection spellVisualEffects, string path, TreeNodeEntry node)
        {
            WowEnvironment env = Engine.Instance.WowEnvironment;

            env.ClearOwnCascFiles();
            foreach (SpellVisualEffect spell in spellVisualEffects)
            {
                string s = Engine.Instance.WowDatabase.GetSpellVisualEffectPath(spell.Id);
                env.AddOwnCascFile(s);
            }
            env.FinishOwnCascFiles();

            TreeViewFiles.Clear();
            TreeNodeEntry treeNode = TreeViewEntry.TraverseAllUseOwn(path, "*", node);

            for (int i = 0; i < treeNode.NodeEntrys.Count; i++)
            {
                TreeViewFiles.Add(treeNode.NodeEntrys[i]);
            }
        }
        private void GetWorldM2TreeItemFiles(string path, TreeNodeEntry node)
        {
            WowEnvironment env = Engine.Instance.WowEnvironment;

            env.ClearOwnCascFiles();
            WowDatabase database = Engine.Instance.WowDatabase;

            for (uint i = 0; i < database.WorldModelCount; ++i)
            {
                env.AddOwnCascFile(database.GetWorldModelName(i, false));
            }
            env.FinishOwnCascFiles();

            TreeViewFiles.Clear();
            TreeNodeEntry treeNode = TreeViewEntry.TraverseAllUseOwn(path, "*", node);

            for (int i = 0; i < treeNode.NodeEntrys.Count; i++)
            {
                TreeViewFiles.Add(treeNode.NodeEntrys[i]);
            }
        }
        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;
        }
예제 #10
0
 static public TreeViewEntry TreeEntryForCargoSpaceType(
     this TreeViewEntry ShipTreeEntry,
     ShipCargoSpaceTypeEnum CargoSpaceType) =>
 FromShipExtractSetCargoSpaceTypeAndTreeEntry(ShipTreeEntry)
 ?.FirstOrDefault(TreeEntryForCargoShipType => TreeEntryForCargoShipType.Key == CargoSpaceType).Value;
예제 #11
0
		static public ShipCargoSpaceTypeEnum? CargoSpaceTypeOfTreeEntry(
			this TreeViewEntry EntryShip,
			TreeViewEntry EntryCargoSpace) =>
			FromShipExtractSetCargoSpaceTypeAndTreeEntry(EntryShip)
			?.Where(CargoShipTypeAndTreeEntry => CargoShipTypeAndTreeEntry.Value == EntryCargoSpace)
			?.Select(CargoShipTypeAndTreeEntry => CargoShipTypeAndTreeEntry.Key)
			?.CastToNullable()
			?.FirstOrDefault();
 private void OnTreeViewSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
 {
     SelectedItem = e.NewValue as TreeViewEntry;
 }
예제 #13
0
 static public IEnumerable <TreeViewEntry> EnumerateChildNodeTransitive(
     this TreeViewEntry TreeViewEntry) =>
 TreeViewEntry?.BaumEnumFlacListeKnoote(Node => Node.Child);