private void BuildProvinceFileTree(TreeNode root, ProvinceJsonFile file) { root.Nodes.Clear(); // Add a subnode for each realm in the file foreach (Province p in file.Provinces.OrderBy(x => x.ID)) { TreeNode node = new TreeNode(p.ToString()); node.Tag = p; root.Nodes.Add(node); p.Node = node; } }
private void SetCurrentMod(string file) { if (!File.Exists(file)) { return; } CurrentMod = JsonConvert.DeserializeObject <Mod>(File.ReadAllText(file)); CurrentMod.FileName = file; WorkingDirectory = Path.GetDirectoryName(file); UserPreferences.Default.WorkingDirectory = WorkingDirectory; UserPreferences.Default.LastMod = file; UserPreferences.Default.Save(); this.Text = EditorName + " - " + CurrentMod.Name; tabControl.Enabled = true; tabControl.Visible = true; modNameTextBox.Text = CurrentMod.Name; modNameTextBox.DataBindings.Add("Text", CurrentMod, "Name"); modIDTextBox.Text = CurrentMod.ID; modIDTextBox.DataBindings.Add("Text", CurrentMod, "ID"); modAuthorTextBox.Text = CurrentMod.Author; modAuthorTextBox.DataBindings.Add("Text", CurrentMod, "Author"); modDescriptionTextBox.Text = CurrentMod.Description; modDescriptionTextBox.DataBindings.Add("Text", CurrentMod, "Description"); // Setup the provinces tree provincesTreeView.Nodes.Clear(); foreach (string f in Directory.GetFiles(Path.Combine(WorkingDirectory, CurrentMod.Name, ProvincesDirectory), "*.txt")) { ProvinceJsonFile loadedFile = JsonConvert.DeserializeObject <ProvinceJsonFile>(File.ReadAllText(f)); loadedFile.FileName = Path.GetFileName(f); CurrentMod.Data.ProvinceFiles.Add(loadedFile); } foreach (ProvinceJsonFile provinceFile in CurrentMod.Data.ProvinceFiles) { TreeNode root = new TreeNode(provinceFile.FileName); root.Expand(); root.Tag = provinceFile; provincesTreeView.Nodes.Add(root); BuildProvinceFileTree(root, provinceFile); } // Setup the realm tree realmsTreeView.Nodes.Clear(); foreach (string f in Directory.GetFiles(Path.Combine(WorkingDirectory, CurrentMod.Name, RealmsDirectory), "*.txt")) { // Load the file data RealmJsonFile loadedFile = JsonConvert.DeserializeObject <RealmJsonFile>(File.ReadAllText(f)); loadedFile.FileName = Path.GetFileName(f); CurrentMod.Data.RealmFiles.Add(loadedFile); } foreach (RealmJsonFile realmFile in CurrentMod.Data.RealmFiles) { TreeNode root = new TreeNode(realmFile.FileName); root.Expand(); root.Tag = realmFile; root.ContextMenuStrip = contextMenuRealmRoot; realmsTreeView.Nodes.Add(root); BuildRealmFileTree(root, realmFile); } }