private void Apply(object selectedMenuItem)
        {
            MemberModel selectedModel = selectedMenuItem as MemberModel;

            if (selectedModel == null)
            {
                return;
            }

            selectedModel.Age = ListPageMemberModel.Age;
            string error = ListPageMemberModel.EnableValidationAndGetError();

            if (error != null)
            {
                return;
            }

            TreeCategory oldParent = selectedModel.Parent;
            TreeCategory newParent = TreeViewMaker.FindNewParent(TreeItemModel.TreeCategories, ListPageMemberModel.Age);

            if (oldParent.Equals(newParent))
            {
                return;
            }
            oldParent.Children.Remove(selectedModel);
            newParent.Children.Add(selectedModel);
            newParent.IsExpanded     = true;
            selectedModel.IsSelected = true;
        }
        private void Register()
        {
            string error = RegisterPageMemberModel.EnableValidationAndGetError();

            if (error != null)
            {
                return;
            }

            MemberModel tempMemberModel = new MemberModel();

            tempMemberModel.CopyFrom(RegisterPageMemberModel);

            MemberModels.members.Add(tempMemberModel);

            TreeCategory parent = TreeViewMaker.FindNewParent(TreeItemModel.TreeCategories, RegisterPageMemberModel.Age);

            if (parent != null)
            {
                parent.Children.Add(tempMemberModel);
            }

            RegisterPageMemberModel.Clear();
            MessageBoxService.MessageBoxServiceShow(registerCompletedMessage);
        }
        public PlantPropertiesStats(PlantProperties p)
        {
            this.wildClusterRadius          = p.wildClusterRadius;
            this.wildClusterWeight          = p.wildClusterWeight;
            this.wildOrder                  = p.wildOrder;
            this.wildEqualLocalDistribution = p.wildEqualLocalDistribution;
            this.cavePlant                  = p.cavePlant;
            this.cavePlantWeight            = p.cavePlantWeight;
            this.sowWork                 = p.sowWork;
            this.sowMinSkill             = p.sowMinSkill;
            this.blockAdjacentSow        = p.blockAdjacentSow;
            this.mustBeWildToSow         = p.mustBeWildToSow;
            this.harvestWork             = p.harvestWork;
            this.harvestYield            = p.harvestYield;
            this.harvestTag              = p.harvestTag;
            this.harvestMinGrowth        = p.harvestMinGrowth;
            this.harvestAfterGrowth      = p.harvestAfterGrowth;
            this.harvestFailable         = p.harvestFailable;
            this.growDays                = p.growDays;
            this.lifespanDaysPerGrowDays = p.lifespanDaysPerGrowDays;
            this.growMinGlow             = p.growMinGlow;
            this.growOptimalGlow         = p.growOptimalGlow;
            this.fertilityMin            = p.fertilityMin;
            this.fertilitySensitivity    = p.fertilitySensitivity;
            this.dieIfLeafless           = p.dieIfLeafless;
            this.neverBlightable         = p.neverBlightable;
            this.interferesWithRoof      = p.interferesWithRoof;
            this.purpose                 = p.purpose;
            this.topWindExposure         = p.topWindExposure;
            this.maxMeshCount            = p.maxMeshCount;
            //this.leaflessGraphicPath = GetLeaflessGraphicPath(p);
            //this.immatureGraphicPath = GetImmatureGraphicPath(p);
            this.dropLeaves                 = p.dropLeaves;
            this.dieFromToxicFallout        = p.dieFromToxicFallout;
            this.autoHarvestable            = p.autoHarvestable;
            this.humanFoodPlant             = p.humanFoodPlant;
            this.treeLoversCareIfChopped    = p.treeLoversCareIfChopped;
            this.allowAutoCut               = p.allowAutoCut;
            this.dieIfNoSunlight            = p.dieIfNoSunlight;
            this.treeCategory               = p.treeCategory;
            this.showGrowthInInspectPane    = p.showGrowthInInspectPane;
            this.minSpacingBetweenSamePlant = p.minSpacingBetweenSamePlant;

            if (p.visualSizeRange != null)
            {
                this.visualSizeRange = new MinMaxFloatStats(p.visualSizeRange);
            }

            Util.AssignDefStat(p.harvestedThingDef, out this.harvestedThingDef);
            //Util.AssignDefStat(p.soundHarvesting, out this.soundHarvesting);
            //Util.AssignDefStat(p.soundHarvestFinish, out this.soundHarvestFinish);
            Util.AssignDefStat(p.burnedThingDef, out this.burnedThingDef);

            Util.Populate(out this.sowTags, p.sowTags);
            Util.Populate(out this.wildBiomes, p.wildBiomes, (v) => new FloatValueDefStat <BiomeDef>(v.biome, v.commonality));
            this.sowResearchPrerequisites = Util.CreateDefStatList(p.sowResearchPrerequisites);
        }
        public static void InitializeTreeView(TreeItemModel treeItemModel)
        {
            treeItemModel.TreeCategories.Add(new TreeCategory()
            {
                Name = "10대"
            });
            treeItemModel.TreeCategories.Add(new TreeCategory()
            {
                Name = "20대"
            });
            treeItemModel.TreeCategories.Add(new TreeCategory()
            {
                Name = "그 외"
            });

            foreach (MemberModel member in MemberModels.members)
            {
                TreeCategory treeCategory = FindNewParent(treeItemModel.TreeCategories, member.Age);
                treeCategory.Children.Add(member);
            }
        }
        private void Delete(object selectedMenuItem)
        {
            MemberModel selectedMemberModel = selectedMenuItem as MemberModel;

            if (selectedMemberModel == null)
            {
                return;
            }

            MessageBoxResult result = MessageBoxService.MessageBoxServiceShow(deleteConfirmMessage, deleteConfirmCaption);

            if (result == MessageBoxResult.No)
            {
                return;
            }

            TreeCategory treeCategory = TreeViewMaker.FindNewParent(TreeItemModel.TreeCategories, selectedMemberModel.Age);

            treeCategory.Children.Remove(selectedMemberModel);
            MemberModels.members.Remove(selectedMemberModel);
            ListPageMemberModel.Clear();
        }